我正在尝试使用我的自定义连接类执行原始 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'.
如您所见,我正在连接到接受 T-SQL 的 Sybase Adaptive Server Enterprise..
我假设我的 sql 字符串有问题,或者它的格式有问题?
谢谢
PS 我确定我的“执行”方法没有任何问题,因为单行删除语句工作正常..
最佳答案
我在网上找到了这个例子
您的代码中没有 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 亚历克斯
关于c++ - 在 C++ 错误中执行原始 SQL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532695/