Ошибка выполнения необработанной строки Sql в C

#c #sql #database #tsql #sybase

#c #sql #База данных #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'.
  

Как вы можете видеть, я подключаюсь к Sybase Adaptive Server Enterprise, который принимает T-SQL..

Я предполагаю, что что-то не так с моей строкой sql,, или с тем, как она отформатирована?

Спасибо

PS Я уверен, что в моем методе «Выполнить» нет ничего плохого, поскольку оператор удаления одной строки работает нормально..

Ответ №1:

я нашел этот пример в Интернете

в вашем коде нет конца и нет ; но ‘;’, я думаю, вам не нужно.

 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
Алекс