vc++でoo4oを利用して日付項目を扱うには?

解決


トシ  2003-04-02 06:25:40  No: 51249

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;
}


トシ  2003-04-03 18:09:44  No: 51250

何とか解決できました。
お騒がせ致しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加