- - PR -
 
JDBCのException…
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
  | 
 投稿日時: 2006-11-28 17:16 
現在、JavaとSQLServerを用いてテーブルを参照するだけの簡単なWEBア
プリを構築しておりますが、以下の問題が発生して困っております。 SQLServerにあるテーブルをクエリアナライザなどでSQLを叩けば普通に 参照できますが、JDBCを用いてJavaから参照しようとすると 「オブジェクト名 *** は無効です。」とエラーになります。全ての テーブルで上記のようなエラーになるわけではなく、JDBC経由で参照で きるテーブルもあります。(権限も参照できるテーブルと参照できない テーブルで違いはありません。) 過去に同じような事が発生した方、解決方法などを教えてください。 環境:SQLServer2000 JDBCバージョン:2.2.0037 ---以下、Exception内容となります。 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]オブジェクト名 '***(テーブル名)' は無効です。 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.TDSExecuteRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source) at ConnectServSample.main(ConnectServSample.java:44) ------ここまで----- 以上、宜しくお願いいたします。  | ||||
  | 
 投稿日時: 2006-11-29 12:17 
データベース名を確認しましたか?
 | ||||
  | 
 投稿日時: 2006-11-29 12:32 
返答ありがとうございます。
>データベース名を確認しましたか? はい。確認しましたが、間違いはないようです。 コネクションの確立も成功しております。  | ||||
  | 
 投稿日時: 2006-11-29 13:13 
トレースを見る限り、データベース / Connection 単位の問題ではないでしょう。
 参照できるテーブルと参照できないテーブルの 「名前」 を提示してください。 それと、確認に使用している SQL クエリも提示してください。 というよりは、'***' が、ワイド文字列かどうかを知りたいのですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌  | ||||
  | 
 投稿日時: 2006-11-29 13:29 
>参照できるテーブルと参照できないテーブルの 「名前」 を提示してください。 
>それと、確認に使用している SQL クエリも提示してください。 参照できるテーブル名:itemdata,keyitem111 参照できないテーブル名:keytable110, keyxitem110 です。 確認にしようしているSQLクエリは sql = "select count(*) cnt from hsi.keyxitem110"; となっています。 以上、宜しくお願いいたします。  | ||||
  | 
 投稿日時: 2006-11-29 14:16 
テーブル名が大文字・小文字できちんと設定されていますか?
例 JavaTB→JAVATB×  | ||||
  | 
 投稿日時: 2006-11-29 14:26 
>テーブル名が大文字・小文字できちんと設定されていますか? 
>例 JavaTB→JAVATB× それに関しては細心の注意をはらっていますが、 大文字、小文字は特に区別しなくてもテーブル参照はできるようです。  | ||||
  | 
 投稿日時: 2006-11-29 16:22 
あまり自分はSQLServer詳しくないのですが、あと考えられるのは
>sql = "select count(*) cnt from hsi.keyxitem110"; 上記のhsiにあたる(ユーザー名)が違っていたりすると、このエラーが出たりするようです。  | ||||
