ADDNEWができねぇっす(涙。。

[戻る]
初心者 [E-Mail] 2003/02/24(月) 13:34:51
はじめまして、いつも参考にさせて頂いております。
早速ですが、VC++、ADOを使ってSQLServer7.0のテーブルのデータの追加したいと思っており
ます。
AddNewメソッドでデータを追加をしたいのですがうまくいきません。
テーブルにデータが1件もない時は、AddNewでデータをうまく追加できるのですが、テーブル
にデータが1件以上あるとき、エラーとなってしまい、新規データが追加できません。何がおか
しいのでしょうか?テーブルの設定は大丈夫なはずなのですが。。
何とか皆さんのお知恵を貸していただけないでしょうか。よろしく願いいたします。
以下に問題部分のコード(編集したやつ)を載せてます。

void CADOAGHKJ::GetDbData(_ConnectionPtr pConn)
{
m_table=_T("tbl_aghkj");//テーブル名
_RecordsetPtr pRs; //レコードセットオブジェクトポインタ
CustomCustomerRs oCustomCustomer; //データベースとVC++をバインドするオブジェクト
IADORecordBinding *picRs = NULL; //バインド ポインタ
HRESULT hr;

pRs.CreateInstance(__uuidof(Recordset));

if(FAILED(hr = pRs->Open(m_table, pConn, adOpenDynamic, adLockOptimistic, 
adCmdTable)))
return -1;

if(FAILED(hr = pRs->QueryInterface(__uuidof(IADORecordBinding),(LPVOID*)
&picRs)))
return -1;

if(FAILED(hr = picRs->BindToRecordset(&oCustomCustomer)))
return -1;

//レコードを追加
oCustomCustomer.m_lCustomer_ID =10;
strcpy(oCustomCustomer.m_szAddress, "aaa");
strcpy(oCustomCustomer.m_szCustomer_Name, "bbb");
strcpy(oCustomCustomer.m_szPhone_Number, "ccc");
strcpy(oCustomCustomer.m_szPostal_Code, "ddd");


if(FAILED(hr = picRs->AddNew(&oCustomCustomer)))
return -1;

if(picRs){
picRs->Close();
picRs->Release();
}
return 0;
}

... 2003/02/24(月) 14:21:08
http://n76cd-01p05.ppp11.odn.ad.jp/cgi.cgi?07744

多分これも、
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200302/03020134.txt

wood 2003/02/24(月) 23:16:13
MSDNきちんと読みなさい!!

「AddNew」の説明きちんと理解できていないでしょう
「追加するための空のレコードを用意してくれる」って書いてませんでしたか

1回目で書き込んでほしい内容書き込まれていますか?
空のレコードが1件存在するだけで何も書かれていないのではないですか

初心者 [E-Mail] 2003/02/25(火) 13:22:26
[[解決]]
解決しました。ご回答くださいましたwoodさんありがとうございました。

古いスレッドには追加発言できません。