VC++でOracleDBの日付項目にInsertをかけたいのですが、うまくいきません。
パラメータの指定が間違っていると思い、いろいろ試しては見たのですが。。。
以下にPGの全容を記載します。
コメントアウトしているスタティック定数を使用すればうまくいきますが、
値が変化する為、パラメータ指定を行いたいのです。
ちなみに、NUMBER型やCHAR型に関してはInsertを行えてます。
よろしくお願いします。
#include "ORACL.H"
#include <fstream.h>
static const char *cInsert = "insert into T_GPSJUSIN(JUSINYMD) values (:pJUSINYMD)";
//static const char *sqls = "insert into T_GPSJUSIN(JUSINYMD) values (TO_DATE('2003/03/25'))";
/********************************************************
* [戻り値]
* 0 ... 正常終了
* -1 ... 異常終了
* [引数]
* なし
* [説明]
* 〜
********************************************************/
int DBInsert(void)
{
OSession sess;
ODatabase datab;
oresult ores;
OStartup();
//OSessionクラスのオープン(エラー管理クラス)
ores = sess.Open();
if (ores != OSUCCESS)
{
return(-1);
}
//データベース・オブジェクトのオープン(データベース接続)
ores = datab.Open(sess, "TRAP", "TRAP_USER", "TRAP");
if (ores != OSUCCESS)
{
return(-1);
}
//パラメータ集合作成
OParameterCollection params = datab.GetParameters();
//パラメータ作成
params.Add("pJUSINYMD", 0, OPARAMETER_INVAR, OTYPE_DATE);
OParameter pJUSINYMD = params.GetParameter("pJUSINYMD");
//パラメータのセット
pJUSINYMD.SetValue(TO_DATE('2003/03/25'));
//ExecuteSQL使用でのDB格納の実行
ores = datab.ExecuteSQL(cInsert);
if (ores != OSUCCESS)
{
return(-1);
}
return(1);
}
void main(void)
{
cout << DBInsert() << endl;
}
何とか解決できました。
お騒がせ致しました。
ツイート | ![]() |