Date: Mon, 8 Dec 2003 11:15:41 +0900
From: "Yasufumi Yamagami" <who@example.co.jp>
山上と申します。初めて投稿します。以後よろしくお願いいたします。
現在私が開発中のシステムで、PreparedStatementを
使用したいと思っているのですが、実行させると
MSのjdbcから
「変数 '@P1' を宣言する必要があります。」
というメッセージの例外が発生します。
疑問点:
1.MySQLなど他のDBのJDBCではこれ以上のコード追加は
必要ないと思うのですが、何か足りないのでしょうか?
2.「変数 '@P1' を宣言」とは、いったい何を意味している
のでしょうか?
MS本家のMSDNを検索したり、JDBC付属ドキュメントを
検索してみましたが、そもそもPreparedStatementに関する
記事が少なく、書籍でもこの組み合わせでの例が見つからず
(MySQLやPostgreSQLならすぐ見つかるんですが・・・)
困っております。どなかた助け舟をお願いいたします。
--------- 環境 ----------
Windows 2000 Server
SQL Server 2000
SQLServer 2000 Driver for JDBC (SP2)
J2SDK 1.4.2_01
--------- コードの抜粋 ----------
PreparedStatement prdStt;
prdStt = myDB.mConnection.prepareStatement("UPDATE ? SET columnA=? WHERE
columnB=? ");
prdStt.setString(1,tableName);
prdStt.setInt(2,valueColumnA);
prdStt.setString(3,valueColumnB);
prdStt.executeUpdate(); // <= ここで例外が発生します。
--------- 実行時のJDBCの例外 ----------
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for
JDBC][SQLServer]変数 '@P1' を宣言する必要があります。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown
Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at
com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknow
n Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown
Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown
Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown
Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown
Source)
(以下、自前パッケージ内なので省略)
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|