Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 15:32   #1
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
Вопрос ADOQuery

Добрый день.
Необходимо создавать записи в базе данных Access.
Выполнил подключение через ADOConection, к нему подключил ADOQuery.
Пишу запрос:
Код:
  ADOQuery1.Active:=False;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('INSERT INTO kpp (KP, Date, Time, Avt, Grz, B, G, Note)');
  ADOQuery1.SQL.Add('VALUES ('''+KP+''', '''+D+''', '''+T+''', '''+avt+''', '''+grz+''', '''+B+''', '''+G+''', '''+Note+''')');
  ADOQuery1.Active:=True;
Выдает ошибку "Ошибка синтаксиса в инструкции 'INSERT INTO"
В чем ошибка понять не могу...( Помогите
Можно ли для создания записей в БД Access обойтись без компонентов ADOTable и DataSourse?
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 31.01.2011, 15:49   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

В компонентах ADO open или active = true используется только для селективных запросов, вам нужно писать не
Код:
  ADOQuery1.Active:=True;
а
Код:
ADOQuery1.ExecSQL;
и лучше использовать параметры
vovk вне форума Ответить с цитированием
Старый 31.01.2011, 18:24   #3
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
По умолчанию

Не собрал я рамы, как через ADOQuery в базу писать...(
Пишу через ADOTable:
Код:
  ADOTable1.Insert;
  ADOTable1.FieldValues['KP']:=KP;
  ADOTable1.FieldValues['Date']:=D;
  ADOTable1.FieldValues['Time']:=T;
  ADOTable1.FieldValues['Type']:=Tp;
  ADOTable1.FieldValues['B']:=B;
  ADOTable1.FieldValues['G']:=G;
  ADOTable1.FieldValues['Note']:=Note;
  if ADOTable1.Modified then
    ADOTable1.Post;
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 31.01.2011, 18:33   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Сейчас ещё подскажу, тут
Код:
 ADOQuery1.SQL.Add('VALUES ('''+KP+''', '''+D+''', '''+T+''', '''+avt+''', '''+grz+''', '''+B+''', '''+G+''', '''+Note+''')');
вы все переменные заключаете в кавычки, а разве все из них хранятся в таблице как строковые? те которые не строковые в кавычки заключать не нужно.


PS А да ещё никогда не называете таблицы и поля зарезервированными словами типа Date, Time, Summ и т.п.

Последний раз редактировалось vovk; 31.01.2011 в 19:12.
vovk вне форума Ответить с цитированием
Старый 31.01.2011, 20:48   #5
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Чтобы не путаться в кавычках, используйте для строковых QuotedStr(имя переменной).
asmodey1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADOQuery StartMis Общие вопросы Delphi 3 19.08.2010 12:52
ADOQuery TriSDev БД в Delphi 2 24.02.2010 07:56
ADOQuery antoni БД в Delphi 3 19.06.2009 07:49
ADOQuery Только_Учусь Помощь студентам 2 16.07.2008 00:31
ADOQuery Roof БД в Delphi 2 12.07.2008 18:08