MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[1235]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(1235番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
SQL2000 + JDBCで PreparedStatementを使用したい

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 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。