2

ローカルホストで MSSQL サーバー 2008 に接続しようとしていますが、エラーが発生します

警告: ConnectionID:2 Prelogin error: host 127.0.0.1 port 1434 Error reading prelogin response: Connection reset

このエラーは非常に迅速に 20 回繰り返され、com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset が発生します。

これは、サーバーの構成が間違っていると思われます。問題なく外部サーバーに接続できます。管理スタジオ経由でも問題なく接続できます。

私を助けてください、私はこの問題にうんざりしています :|

4

2 に答える 2

6

1) MSSQL 2008 の TCP プロトコルはデフォルトで無効になっています。SQL 構成マネージャーから有効にする必要があります (MSSQL と同じ [スタート]、プログラム フォルダー内)。

2) TCP 接続を使用するには (localhost でも!)、Windows ファイアウォールで MSSQL を許可する必要があります。

3) MSSQL にアクセスするために必ずしも TCP/IP を使用する必要はありません。

「お役に立てば幸いです!

于 2012-07-04T22:01:53.557 に答える
-2

Java アプリケーションから MSSQL Server に接続するには、JDBC API を使用する必要があります。JDBC API は、データベースへの接続、適切なドライバーのロード、SQL クエリの送信、結果の取得などを行うクラスとメソッドを提供します。

データベースへの接続方法 「接続」オブジェクトは、データベースとの接続を表します。接続を確立するには、'DriverManager.getConnection' メソッドを使用します。このメソッドは、接続しようとしているデータベースを表す URL を含む文字列を受け取ります。以下は、接続を確立するためのサンプル コードです。

private String DATABASE_URL = "jdbc:odbc:embedded_sql_app"; // establish connection to database
Connection connection = DriverManager.getConnection( DATABASE_URL,"sa","123" );

データベース URL とその作成方法についての詳細な説明は、この投稿の最後にあるリソースに記載されています。

データベースのクエリ JDBC API は、SQL ステートメントをデータベースに送信するための 3 つのインターフェイスを提供し、「接続」インターフェイスの対応するメソッドがそれらのインスタンスを作成します。1. ステートメント - 「Connection.createStatement」メソッドによって作成されます。「ステートメント」オブジェクトは、パラメーターなしで SQL ステートメントを送信するために使用されます。2. PreparedStatement - 「Connection.prepareStatement メソッド」によって作成されます。「PreparedStatement」オブジェクトは、プリコンパイル済み SQL ステートメントに使用されます。これらは、入力引数 (IN パラメーター) として 1 つ以上のパラメーターを取ることができます。3. CallableStatement - 「Connection.prepareCall」メソッドによって作成されます。「CallableStatement」オブジェクトは、Java データベース アプリケーションから SQL ストアド プロシージャを実行するために使用されます。

結果の取得 「ResultSet」は、SQL クエリの実行結果を含む Java オブジェクトです。「ResultSet」オブジェクトに格納されたデータは、現在の行のさまざまな列へのアクセスを可能にする一連の get メソッドを通じて取得されます。「ResultSet.next」メソッドを使用して「ResultSet」の次の行に移動し、それを現在の行にします。次のコード フラグメントは、列 'a' を 'int'、列 'b' を 'String'、列 'c' を 'float' として、行のコレクションを返すクエリを実行します。

java.sql.Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) { // retrieve and print the values for the current row
int i = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
System.out.println("ROW = " + i + " " + s + " " + f); }

これは、Java からデータベースを操作する方法の簡単な紹介にすぎません。上記の項目の詳細と、パラメーターの受け渡し、ストアド プロシージャの実行などについては、次のリソースを参照してください。 -C-Sharp-Java.html#Shahriar_N_Embedding_SQL_in_Java ) ここでは、データベースとプログラムで対話する方法についての情報も見つけることができます。つまり、SQL を使用しません。これが役に立つことを願っています。

于 2012-07-06T11:37:26.667 に答える