在C ++错误中执行原始Sql字符串

时间:2014-07-02 13:40:19

标签: c++ sql database tsql sybase

我尝试使用自定义Connection类执行原始sql字符串..

(Execute方法只执行给定的sql语句..)

MyConnection.Execute(
    "DECLARE @i int "
    "SET @i = 0 "
    "WHILE (@i < 10000) BEGIN "
    "INSERT INTO my_table VALUES (1, 2, 3) "
    "SET @i = @i + 1");

运行此语句会给我一个语法错误:

Code = 80040e14
Code meaning = I
Source = ASEOLEDB
Description = [42000]
[ASEOLEDB] Incorrect syntax near '1'.

如您所见,我正在连接到Sybase Adaptive Server Enterprise,后者接受T-SQL ..

我假设我的sql字符串有问题,或者它是如何格式化的?

由于

PS我确定我的&#34;执行&#34;没有错。方法,作为单行删除语句工作正常..

1 个答案:

答案 0 :(得分:1)

我在网络上找到了这个例子

您的代码没有END而没有;但是',',我认为,你不需要。

DECLARE @MyCounter int;
SET @MyCounter = 0;
WHILE (@MyCounter < 26)
BEGIN;
   INSERT INTO TestTable VALUES (@MyCounter, CHAR( ( @MyCounter + ASCII('a') ) ) );
   SET @MyCounter = @MyCounter + 1;
END;

BR 亚历