[pgsql-jp: 35507] ODBC経由でInsertエラー

石倉 隆 ishi @ gic.intec.co.jp
2005年 6月 16日 (木) 15:21:55 JST


石倉といいます。

Visual C++ から ODBC 経由で Postgres にデータをInsertしようと
しています。
MFCのODBCコンシューマークラスを用いてデータをセットし
Updateを行うと「ハンドルされていない例外が発生しました」と
エラーが表示されます。そのまま「継続」すると結局データは
Insertされますが原因がわかりません。

調査してみたところ、テーブルの項目名をちょっと変えると
正常に動作するみたいです。

エラーが発生したテーブル
CREATE TABLE TEST_INSERT_ER (
    VC_ROUND            VARCHAR(3)  NOT NULL,
    VC_ASSAY            VARCHAR(4)  NOT NULL,
    VC_LONG_NM_COL1     VARCHAR(20) NOT NULL,
    VC_LONG_END         VARCHAR(20) NOT NULL,
    VC_END              VARCHAR(20) NOT NULL,
    IN_STEP             INTEGER     NOT NULL DEFAULT -1,
    IN_EXEC_FIN_FLAG    INTEGER     NOT NULL DEFAULT 0,
CONSTRAINT PK_TEST_INSERT_ER PRIMARY KEY (VC_ROUND, VC_ASSAY)
);

なお、最後の項目名を1文字削って以下のようにすると正常に
Insertできました。

    IN_EXEC_FIN_FLAG    INTEGER     NOT NULL DEFAULT 0,
         ↓
    IN_EXEC_FIN_FLG     INTEGER     NOT NULL DEFAULT 0,

psqlでInsertするとどちらのテーブル構造でも正常にInsertできる
ので正確にはPostgresの問題ではないのかもしれませんが、ODBCの
制限など情報などありましたら教えて頂けないでしょうか。

環境
DataBase : Postgres 7.3.4 on RedHat Linux 9
ClientOS : WindowsXP SP2
開発環境 : Visual Studio .NET 2003 Visual C++
ODBCドライバ : psqlodbc-07_03_0100.zip および 
               psqlodbc-07_03_0200.zip

以上






pgsql-jp メーリングリストの案内