Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не проходит запрос INSERT INTO в ACCESS


cosmos ©   (2006-08-07 13:16:00) 

Здравствуйте уважаемые мастера!
Проблема такая! К бд ACCESS подключен через ADOConnection к нему подцеплен ADOQuery при попытке выполнить запрос

ADOQuery1.SQL.Add('insert into user_r(name,password) values(''z'',''z'')');

выдает сообщение :
"ошибка синтаксиса в инструкции INSERT INTO" хотя в самом ACCESSе такой запрос выполняеся (изменения только с точностью до апострофов)
версия ACCESS 2003


Neo Trinitron   (2006-08-07 14:56:00) [1]

> Да ну ?

Не обязательно, конечно, ну перепутал, с кем не бывает?


MsGuns   (2006-08-07 14:43:00) [2]

>Neo Trinitron ©   (07.08.06 14:02) [5]
>В MSAccess нужно ставить двойные кавычки для символьных констант

Да ну ?


Neo Trinitron   (2006-08-07 14:09:00) [3]

Точно, забыл про []. Desdechado, хороший совет, но для динамических Sql немного громоздко...


Desdechado   (2006-08-07 14:07:00) [4]

да-да, и зарезервированные слова в качестве метаданных тоже строго не рекомендуется


Desdechado   (2006-08-07 14:06:00) [5]

Параметры! Только их использовать, чтоб не было "В MSAccess нужно ставить", а в оракле..., а в LocalSQL ...


cosmos   (2006-08-07 14:05:00) [6]

проблема решилась!
поле password надо было заключить в квадратные скобки ([password]), а использовать двойные кавычки или одинарные не имеет значения так и так проходит!
всем спасибо за участие!


Neo Trinitron   (2006-08-07 14:02:00) [7]

В MSAccess нужно ставить двойные кавычки для символьных констант. Попробуй вместо " написать так:

ADOQuery1.SQL.Add('insert into user_r(name,password) values('+chr(34)+'z'+chr(34)+','+chr(34)+'z'+chr(34)+')');


cosmos   (2006-08-07 13:58:00) [8]

clear(); имеется.

в values стоят подряд две одинарные кавычки, помоему для текстовых полей так и нужно делать!

если вместо двух одинарных кавычек поставить двойные, то та же самая ошибка!


Neo Trinitron   (2006-08-07 13:29:00) [9]

Кавычки для values должны быть двойными а не одинарными... Это у Вас две одинарные или одни двойные, уточните...


Desdechado   (2006-08-07 13:21:00) [10]

Так сделай нормальные апострофы или используй параметры.
А еще есть подозрения, что перед Add() не стоит Clear().


Desdechado   (2006-08-07 13:21:00) [11]

И вообще лучше использовать ADOCommand


Наверх

Титульная страница Поиск, карта сайта Написать письмо