Текущий архив: 2006.02.26;
Скачать: CL | DM;
Вниз
Dinamic SQL error -206 Найти похожие ветки
← →
tytus (2005-12-28 11:51) [0]Добрый день господа. только начинаю осваивать SQL. Хочу переделать свою прогу для локальных БД (парадокс) на клиент-сервер.Имеется IBDataBase, IBTransaction и IBQuery. Делаю так:
IBQuery.Active:=false;
try
IBQuery.SQL.Add("INSERT INTO MainTable(Column1,Column2)
Values("Name",123)");
IBQuery1.Open;
except
IBTransaction.Rollback;
end;
Ругается кодом -206 Unknow Column "Name".
Хотя, в SQL-проводнике такой запрос выполняется, и данные заносятся в таблицу.
В чем тут дело, подскажите плиз.
← →
Курдль © (2005-12-28 11:58) [1]Может в "Name" не двойные кавычки, а апострофы?..
← →
Johnmen © (2005-12-28 12:01) [2]Тут у тебя много ошибок.
1. Обрати внимание на IBQuery1.Open; это неверно.
2. Нет очистки свойства SQL, поэтому строку будут накапливаться.
3. Нет подтверждения транзакции.
4. Ну и наконец по поводу -206. Кавычки д.б. двойные одинарные. Почему? Учите матчасть...:)
← →
msguns © (2005-12-28 12:10) [3]1. В IBQuery1.Open, похоже, целых две ошибки.
Первая. Может все-таки "1" лишняя ?
Вторая. Для модифицирующих запросов (Insert/Update/Delete) используется метод ExecSQL (на что и намекал Джонмэн)
← →
tytus (2005-12-28 12:13) [4][2]
Да это я по-памяти написал...
2.IBQuery.SQL.Clear;-есть у меня.
1. а что писать - IBQuery.ExecuteSQL;?
3.IBTransaction.Commit;?
4. Писал по всякому. А вообзе-то у меня так:
s:="INSERT INTO MAINTABLE(ExchName,GroupNumber)
VALUES(""+MainFm.GlobalExchName+"",""+GRP.GRPNAME+"")";
IBQuery.SQL.Add(s);
И всеравно ругается.
← →
Desdechado © (2005-12-28 12:43) [5]> Кавычки д.б. двойные одинарные
кавычки могут быть и одинарные, и двойные
главное, чтоб одинаковые в одном запросе :)
> VALUES(""+MainFm.GlobalExchName+"",""+GRP.GRPNAME+"")";
попробуй параметры использовать, утебя мусор в переменных, который запутывает сервер
← →
Johnmen © (2005-12-28 12:52) [6]>кавычки могут быть и одинарные, и двойные
>главное, чтоб одинаковые в одном запросе :)
А вот и нет. Ибо смотри, какая у него БД, и какой диалект.
← →
msguns © (2005-12-28 14:33) [7]>Desdechado © (28.12.05 12:43) [5]
>попробуй параметры использовать, утебя мусор в переменных, который запутывает сервер
Ух ты ! А параметры "сервер" подставляет ?
← →
Desdechado © (2005-12-28 15:42) [8]Johnmen © (28.12.05 12:52) [6]
IB6 в 1 диалекте прекрасно кушает кавычки, в 3-м не знаю, но об этом автор умалчивает
> А параметры "сервер" подставляет ?
начинка параметров может быть любая, удовлетворяющая типу данных
а вот начинка SQL-запроса не может быть любой, например символы #13#10 явно будут интерпретироваться соответственно
← →
Johnmen © (2005-12-28 15:48) [9]>Desdechado © (28.12.05 15:42) [8]
>IB6 в 1 диалекте прекрасно кушает кавычки, в 3-м не знаю, но об этом автор умалчивает
Почему ты не говоришь, какие именно кавычки? Ведь в этом всё дело.
Ну а чтобы вообще не зависеть ни от чего, надо, как я сказал в [2] пункт 4.
← →
Курдль © (2005-12-28 16:32) [10]
> Johnmen © (28.12.05 15:48) [9]
> Ну а чтобы вообще не зависеть ни от чего, надо, как я сказал
> в [2] пункт 4.
Я бы так категорично не заявлял. Во всяком случае со строкой может и пройдет, а если там нужна дата? Какие еще кавычки применять?
Так что лучше делать через параметры и не придумывать велосипед!
← →
Johnmen © (2005-12-28 16:41) [11]>Курдль © (28.12.05 16:32) [10]
>Во всяком случае со строкой может и пройдет, а если там нужна дата?
Ну мы же вроде бы чётко разговариваем в рамках строки. Без всяких "если".
>Так что лучше делать через параметры и не придумывать велосипед!
Параметры завсегда правильнее.
← →
Desdechado © (2005-12-28 17:41) [12]> какие именно кавычки?
сорри, под кавычками я всегда понимаю двойные, а одинарные - апострофы
Страницы: 1 вся ветка
Текущий архив: 2006.02.26;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.054 c