1
私のC++コードでは、ADOコマンドを実行してテーブルに行を挿入しようとすると、特定の行数だけが挿入されます。 .NETでSystem.Data.SqlClientを使用する場合、同じコマンドがうまく機能します。ADOコマンドtsqlはクエリの問題を挿入します
ADOまたはsqlclientを使用する場合、SQLプロファイラは同じテキストデータを表示します。以下は私の挿入コマンド文ですが、ここで問題を明らかにするために何をすべきかは分かりません。
これについての助けに感謝します。
コマンドテキスト:
declare @i int set @i = 1 while (@i < 255)
begin
insert into table1 (name,type, order, state) values (@i, N'type',0,0)
set @i = @i +1
end
上記のコマンドは153行で終了。これはテーブルサイズに依存しますか? コマンドを2回実行すると、@i 0から150の範囲と150から255の範囲の連続した行がすべて挿入されます。 ADOコマンドの実行に制限がありますか?あなたの助けのための
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
ADODB::_ConnectionPtr m_Conn = NULL;
TCHAR connString[255];
_stprintf(connString,
_T("DRIVER=SQL Server;SERVER=np:(local)\\MyInstance;DATABASE=test;"));
HRESULT hr;
hr = m_Conn.CreateInstance(__uuidof(ADODB::Connection));
if (hr != S_OK) {
wprintf(_T("CreateInstance(__uuidof(ADODB::Connection)) failed. Error: %d"), hr);
return 0;
}
m_Conn->ConnectionTimeout = 1800;
m_Conn->CommandTimeout = 1800;
hr = m_Conn->Open((LPCTSTR)connString, _T(""), _T(""),
ADODB::adConnectUnspecified);
if (hr != S_OK) {
wprintf(_T("Open(%ws, '', '', ADODB::adConnectUnspecified) failed."),
connString);
return 0;
}
ありがとう:
これは私の接続文字列と私は、接続を構築するために使用しているコードです。
私はあなたが153行目で実際に致命的なエラーに遭っていると思います。何らかの理由で通知されません。その行が何であるかを見つけ出し、生のSQLを実行することをお勧めします。 –
私はこれを試しただけで、生のSQLでエラーを起こさなかった。また、私は同じSQLを使用し、SQLクライアントで実行する場合、それはうまくいく。 – neblinc1