c++ - 在 C++ 错误中执行原始 SQL 字符串

标签 c++ sql database tsql sybase

我正在尝试使用我的自定义连接类执行原始 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/

相关文章:

sql - BigQuery 根据(Array CONTAINED IN Array)条件连接 2 个表

sql - 不使用空白单元格覆盖数据的 Access 、更新查询

c++ - Qt 小部件析构函数通过连接信号间接调用小部件方法,并崩溃

c++ - 对双倍递增的 OutputIterator 的取消引用赋值

C++ 查找从属名称

c++ - Qt QGraphicsScene 添加项目缓慢

sql - 为值行指定列名

php - 将输入的日期与数据库日期(年份除外)进行比较

mysql - 创建/更改 mysql 表的列时如何创建 bool 列并分配值 1?

mysql - 如何使用 CakePHP 更新一行上的多个字段