![]() |
|
|
|
|
#1
|
|||
|
|||
|
Всем доброго времни суток!
Появилась проблемка... Необходимо добавить 1 запись в существующцю таблицу. Вот оработчик кнопки для добавления строки в таблицу ... Обработчик ADOQuery1.Active := false; ADOQuery1.Clear; ADOQuery1.SQL.Add('INSERT INTO table_test (f_1, f_2, f_3) VALUES ("111111", "222222", "333333")'); ADOQuery1.ExecSQL; 1. Типы всех полей - varchar (not null) 2. Значения как только не указывал ... и в апастрофах, и в ковычках, и в скобочках квадрытных, и просто значение ... 3. Выдает всегда одну и туже ошибку ... ---- Ошибка (дословно): Имя "111111", "222222", "333333" не разрешено в данном контексте. Допустимым значениями являются константы, константные вырожения и (в некоторых случаях) переменные. ----- Примечание: Нашел вариант указывать в тройных апастрофах, т.е. не "111111", а '''111111'''. Работает... но что-то мне подсказывает, что не так это пишется ... ----- По форуму искал аналогичные темы, но так ничего похожего не нашел ... Может кто-нибудь дать короткое описание решения данной проблемы ? Как необходимо указывать значения в скобочке после слова VALUES ? Может кто-нибудь скинуть ссылку на нормыльный справочник с синтаксисом всех запросов MS SQL ? Заранее благодарю за помощь ... |
|
#2
|
||||
|
||||
|
QuotedStr('111111') можно
|
|
#3
|
|||
|
|||
|
Нашел решение одно еще ...
Указывать в двойных апострофах, тогда тоже работает ... т.е. ' ' [значение] ' ' Может у кого есть еще соображения ? |
|
#4
|
|||
|
|||
|
1. Строка в SQL задается в апострофах.
2. Одиночный апостроф в паскалевской строке вводится через 2 подряд вводимых апострофа. Таким образом, твой запрос должен иметь вид: Код:
ADOQuery1.SQL.Add('INSERT INTO table_test (f_1, f_2, f_3) VALUES (''111111'', ''222222'', ''333333'')');А вообще, пиши запросы через параметры. |
|
#5
|
|||
|
|||
|
Спасибо за исчерпывающий ответ ...
|
|
#6
|
|||
|
|||
|
Вопрос... почему выдаёт только одно слово в мемо??? хотя их должно быть много.
если меняю Fields[0] на Fields[1] выдаёт ошибку... не понимаю, объясните пожалуйста. Код:
procedure TfMain.Button1Click(Sender: TObject);
var lostS,f: string;
begin
Memo1.Clear;
lostS:=Edit1.Text;
f:=lostS;
begin
with fMain.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT Name');
SQL.Add('FROM WORDS');
SQL.Add(Format('WHERE Name LIKE %s',[QuotedStr('%'+f+'%')]));
Open;
Memo1.Lines.Add(fMain.ADOQuery1.Fields[0].AsString)
end;
end;
end; |