Форум: "Базы";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.045 c