• 締切
  • 困ってます

SQL文のエラー

  • 質問No.2289453
  • 閲覧数1149
  • ありがとう数14
  • 回答数4

お礼率 22% (2/9)

PostgreSQLの初心者です。よろしくお願いします。
今、日本語ODBCドライバを使ってクライアント側を
VB.NETでプログラムを作っています。PostgreSQLは8.1.4です。
レコードの追加をするために、レコードIDのMAX値を
撮るためにプログラム中にSQL
sql = "SELECT MAX(user_id) AS MaxID FROM user"
を入れて発行したところ、本来ですと「1」が返って
こなければいけないのに、
Msgbox(MaxID)
を仕込むと「0」が返ってきます。そして、その後に

ERROR [HY000] Error while executing the query;
ERROR; operator does not exist: # integer

というエラーが返ってきます。

先ほどのSQLはリモートで直接PostgreSQLにつなぐと
ちゃんと「1」が返ってくるのですが、VB.NET上では
うまくいきません。

質問としては2つあります。
1)VB.NET上で実行すると、なぜ「0」が返ってきて
しまうのか?
2)エラーメッセージの意味
の2点です。

よろしくお願いします。

回答 (全4件)

  • 回答No.4

ベストアンサー率 52% (19/36)

テーブル構造および型は問題なくて、
psqlコマンドで実行してちゃんと1が返ってくるようであれば、
次はVB.NETプログラミングの問題かと思ってしまいます。

SQL周りだけでも良いので掲載して頂きたいと思います。
  • 回答No.3

ベストアンサー率 42% (27/64)

じゃあ、ほかのSQL文を実行できますか?

「Error while executing the query」
って実行エラーって意味だと思うんで、もしかしたらSQLが実行できてないかもしれません。
  • 回答No.2

ベストアンサー率 52% (19/36)

列:user_id の型を確認してみてください。
補足コメント
hanadate

お礼率 22% (2/9)

ssm3uさん、回答ありがとうございます。

psqlで
# d\ user
と入れると、
Column | Type | Modifiers
---------------+-------------------+-----------
user_id | integer | not null
と返ってきますので、間違いなくintegerで定義して
います。
勿論、VB.NET側はMaxIDをintegerで取り扱っています。
他にお気づきの点はないでしょうか?
投稿日時:2006/07/21 12:38
  • 回答No.1

ベストアンサー率 42% (27/64)

型が違いませんか?

Int型をString型として使ってる気がします。
お礼コメント
hanadate

お礼率 22% (2/9)

salfさん、回答ありがとうございます。

psqlで
# d\ user
と入れると、
Column | Type | Modifiers
---------------+-------------------+-----------
user_id | integer | not null
と返ってきますので、間違いなくintegerで定義して
います。
勿論、VB.NET側はMaxIDをintegerで取り扱っています。
他にお気づきの点はないでしょうか?
投稿日時:2006/07/21 12:54
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ