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

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

Не работает INSERT при работе с БД Access... [Access]


GL00m ©   (2006-03-20 15:08:00) 

Сделал ADOConnection, там Microsoft Jet OLEDB и в качестве Data Source указал файл *.mdb. SELECTы работают, всё хорошо, но... Делаю нечто типа:

 with ADOQuery1 do
 begin
   Close;
   SQL.Clear;
   SQL.Add('INSERT INTO objectdata (object) VALUES ("Hello")');
   ExecSQL;
 end;

При этом получаю "Ошибка синтаксиса в инструкции INSERT".
(поле object - Текстовое, размер 50)
Если сделать INSERT INTO objectdata (x1) VALUES (5), то получу "В операции должен использоваться обновляемый запрос".
Почему???
(может с версиями что-то не так: D2005, MSOffice 2003?)


GL00m   (2006-03-20 23:00:00) [1]

ЛЮДИ! Не бейте ногами! Я сам дебил! В ADOConnection у меня стояло Mode=cmRead. Исправил на cmReadWrite все запахало. Только сформулировать ошибку могли бы и более понятно. =)
С полем object действительно решилось все через квадратные скобки.
Всем, кто откликнулся, большое спасибо!
Извините, пожалуйста... =)


GL00m   (2006-03-20 22:51:00) [2]

Ничего хорошего по поиску в яндексе нет - у народа такая проблема при работе из ASP, решение - установка пользователю прав доступа на запись. В моем случае я не знаю, как это может помочь...=(


Nikolay M.   (2006-03-20 17:04:00) [3]


> Можно ли как-то это обойти, не меняя имени поля?

Имя поля - в кавычки, апострофы или квадратные скобки. Что-то обязательно поможет.


GL00m   (2006-03-20 15:38:00) [4]


> Поля в таблице NOT NULL, или Default не установлен?

Not null - только ключевое. Default - только для поля object. Это разве может быть причиной ошибки?

> Зарезервированное слово?

Вот, кстати, возможно. Но базу делал не я, мне только управление ею надо сделать. Можно ли как-то это обойти, не меняя имени поля?


Nikolay M.   (2006-03-20 15:26:00) [5]


>  SQL.Add('INSERT INTO objectdata ( object) VALUES ("Hello")');


Зарезервированное слово?


> В операции должен использоваться обновляемый запрос


http://www.yandex.ru/yandsearch?rpt=rad&text=%C2+%EE%EF%E5%F0%E0%F6%E8%E8+%E4%EE%EB%E6%E5%ED+%E8%F1%EF%EE%EB%FC%E7%EE%E2%E0%F2%FC%F1%FF+%EE%E1%ED%EE%E2%EB%FF%E5%EC%FB%E9+%E7%E0%EF%F0%EE%F1


Ega23   (2006-03-20 15:10:00) [6]

Поля в таблице NOT NULL, или Default не установлен?


Наверх

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