Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Access не воспринимает запрос   Найти похожие ветки 

 
Denis ©   (2005-08-10 10:54) [0]

Пытаюсь работать с базой Access 2000 с помощью компонентов ADO.
Попытка выполнить простейший запрос на вставку в таблицу из Delphi
вызывает ошибку "Неправильный синтаксис инструкции INSERT INTO",
но этот же запрос, выполненный в Access, нагло и молча добавляет запись в таблицу.
Думал, дело в счетчике, убрал его - та же петрушка.
Подскажите, в чем может быть дело.
Таблица из трех полей - числовое(уже не счетчик) и два текстовых.
Вот как выглядит запрос:
INSERT INTO [USER] (iduser,usname,phone)
values (1,"я","555")

Пытался еще так -
INSERT INTO [USER]
select 1 as iduser,"я" as usname, "555" as phone


 
ANB ©   (2005-08-10 12:14) [1]


> Denis ©   (10.08.05 10:54)
- в 17 строке ошибка.


 
Denis ©   (2005-08-10 12:21) [2]

Я в Memo вывожу текст запроса для проверки, потом копирую его без изменений в Access - и шуршит как миленький.
Ну вот как запрос формируется:
сразу скажу - Edit-ы гарантированно не пустые.

Tb:=TAdoQuery.Create(self);
Tb.Connection:=fmMain.Connection;
Tb.SQL.Add("SELECT USER.* FROM [USER] WHERE (((USER.USNAME)= "+#39+edUser.Text+#39+"))");
Tb.Open;
if not Tb.IsEmpty
then
MessageDlg("Пользователь с таким именем уже зарегестрирован!",mtWarning,[mbOk],0)
else
begin
Tb.Close;
Tb.SQL.Clear;
Tb.SQL.Add("select max(IDUSER) as IDUSER from [USER]");
Tb.Open;
Tb.FieldList.Update;
IDUS:=Tb.Fields[0].AsInteger+1;
Tb.Close;
Tb.SQL.Clear;
Tb.SQL.Add("INSERT INTO [USER] (iduser,usname,phone) ");
Tb.SQL.Add("values ("+IntTOStr(IDUS)+","+ #39+edUser.Text+#39+","+#39+edNew.Text+#39+")");
Memo1.Lines.assign(Tb.SQL);
Tb.ExecSQL;
MessageDlg("Новый пользователь успешно добавлен!",mtWarning,[mbOk],0);
Close;
end;
Tb.Free;


 
ANB ©   (2005-08-10 12:45) [3]

Порекомендовал бы вообще то параметры юзать, вместо строк в кавычках и чисел - констант.

А по сабжу - может провайдер не тот ? Я в них не особо разбираюсь, запости строку коннекта - ща мастера придут, разберут.

Кстати, возможна проблема в кавычках. Замени константы в запросе на параметры и поиграй с квадратными строками.


 
Paul_K ©   (2005-08-10 12:54) [4]

после
Memo1.Lines.assign(Tb.SQL);
напиши
showmessage(Tb.SQL.TEXT)
и посомотри что исполняешь



Страницы: 1 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
14-1125945109
Imbalancer
2005-09-05 22:31
2005.09.25
Need help VBA


4-1122803140
EvgeniySpb
2005-07-31 13:45
2005.09.25
Property Sheets


14-1125469580
12DFBDDh
2005-08-31 10:26
2005.09.25
Кодовая страница cp866


14-1124983655
Juice
2005-08-25 19:27
2005.09.25
Покупка FIBPLUS 6


11-1107339126
Борис
2005-02-02 13:12
2005.09.25
MirrorKOLPackage