Вопрос № 79686: Уважаемые программисты, у меня к Вам вопрос, надеюсь пишу в правильном направлении:
Я пишу на Delphi с использованием SQL, так вот, при попытке добавить запись в таблицу возникает ошибка, я делаю так, код запроса и ошибку смотрите в приложении.<b...
Вопрос № 79.686
Уважаемые программисты, у меня к Вам вопрос, надеюсь пишу в правильном направлении:
Я пишу на Delphi с использованием SQL, так вот, при попытке добавить запись в таблицу возникает ошибка, я делаю так, код запроса и ошибку смотрите в приложении.
Использую Delphi 7 и FireBird базы FDB
В чем моя ошибка?
Приложение:
Отправлен: 25.03.2007, 16:27
Вопрос задал: xXx (статус: 6-ой класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, xXx!
Все строковые данные при добавлении в таблицу в обязательном порядке должны быть заключенными в кавычки. Кроме того, данные необходимо отделять друг от друга запятыми. Правильно будет так:
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('insert into Main (Family,Name,Otch)');
IBQuery1.SQL.Add(QuotedStr(edit1.text)+','+QuotedStr(edit2.text)+','+QuotedStr(edit3.text));
IBQuery1.ExecSQL;
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 26.03.2007, 05:31
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, xXx!
Добавлю к предыдущему ответу, что пропущена обязательная конструкция
VALUES ()
т.е. должно быть так:
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('insert into Main (Family,Name,Otch)');
IBQuery1.SQL.Add('VALUES (');
IBQuery1.SQL.Add(QuotedStr(edit1.text)+','+QuotedStr(edit2.text)+','+QuotedStr(edit3.text));
IBQuery1.SQL.Add(')');
IBQuery1.ExecSQL;
Отвечает: Архангельский Андрей Германович
Здравствуйте, xXx!
Код:
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('insert into Main (Family,Name,Otch)');
IBQuery1.SQL.Add(' values ('''+edit1.text+''','''+edit2.text+''','''+edit3.text+''');');
IBQuery1.ExecSQL;
--------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО