c++ - ADO命令tsql插入查询问题

标签 c++ tsql ado

在我的 C++ 代码中,当我尝试运行 ADO 命令将行插入表中时,它只会插入一定数量的行。在 .NET 中使用 System.Data.SqlClient 时,相同的命令效果很好。

当使用 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 行结束。这取决于 table 的大小吗? 如果我发送命令执行两次,连续一次从 @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;
   }

感谢您的帮助。

最佳答案

我成功了。添加“SET NOCOUNT ON”允许插入继续。不确定 ADO 中的限制是什么。

关于c++ - ADO命令tsql插入查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4218397/

相关文章:

c++ - c\c++ 中存储 COM 的 VT_DECIMAL 的正确类型是什么?

excel - Classic ADO/ODBC/Oracle 10g EZConnect 的连接字符串语法

asp-classic - 使用 ADO Stream 逐行读取大文件?

c++ - 循环与操作顺序

sql-server - 如何在 SSMS 中查看 ntext 或 nvarchar(max) 中的所有文本?

xml - 使用 T-SQL 更新多个 XML 节点

sql - 在 SQL Server 中执行时捕获对象依赖关系

c++ - 为什么只能在头文件中实现模板?

c++ - 如何将 vector 转换为函数

c++ - 从函数重定向到函数