繁体   English   中英

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

[英]Executing Raw Sql String in C++ Error

我正在尝试使用我的自定义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'.

如您所见,我正在连接到接受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;

亚历克斯·亚历克斯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM