Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.06.2009, 14:47
KBEPTMEH KBEPTMEH вне форума
Прохожий
 
Регистрация: 04.06.2009
Сообщения: 21
Репутация: 10
По умолчанию ADOQuery

Всем доброго времни суток!

Появилась проблемка...
Необходимо добавить 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  
Старый 09.06.2009, 14:53
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

QuotedStr('111111') можно
Ответить с цитированием
  #3  
Старый 09.06.2009, 16:12
KBEPTMEH KBEPTMEH вне форума
Прохожий
 
Регистрация: 04.06.2009
Сообщения: 21
Репутация: 10
По умолчанию

Нашел решение одно еще ...
Указывать в двойных апострофах, тогда тоже работает ...
т.е. ' ' [значение] ' '
Может у кого есть еще соображения ?
Ответить с цитированием
  #4  
Старый 09.06.2009, 16:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Строка в SQL задается в апострофах.
2. Одиночный апостроф в паскалевской строке вводится через 2 подряд вводимых апострофа.
Таким образом, твой запрос должен иметь вид:

Код:
ADOQuery1.SQL.Add('INSERT INTO table_test (f_1, f_2, f_3) VALUES (''111111'', ''222222'', ''333333'')');

А вообще, пиши запросы через параметры.
Ответить с цитированием
  #5  
Старый 10.06.2009, 07:14
KBEPTMEH KBEPTMEH вне форума
Прохожий
 
Регистрация: 04.06.2009
Сообщения: 21
Репутация: 10
По умолчанию

Спасибо за исчерпывающий ответ ...
Ответить с цитированием
  #6  
Старый 11.06.2009, 18:01
Gamer09 Gamer09 вне форума
Прохожий
 
Регистрация: 11.06.2009
Сообщения: 7
Репутация: 10
По умолчанию

Вопрос... почему выдаёт только одно слово в мемо??? хотя их должно быть много.
если меняю 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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter