2014-07-02 34 views
0

我想用我的自定義連接類來執行原始SQL字符串..在C++錯誤執行原始的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我敢肯定有什麼錯我的「執行」的方法,爲單線delete語句工作正常..

回答

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 亞歷

+0

不能相信我錯過了..謝謝! – user2436815

+0

:-)快樂編碼 – Alexander