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

Вниз

Как учесть поле-счётчик в SQL запросе?   Найти похожие ветки 

 
Ral'f   (2007-06-16 11:19) [0]

Добавля новую запись в таблицу "Kontakt" Access:
 if ADOQueryCB.Active then ADOQueryCB.Close;
 ADOQueryCB.Parameters.Clear;
 ADOQueryCB.SQL.Add("INSERT INTO Kontakt (FIO, Telefon) VALUES (:fio, :tel)");
 ADOQueryCB.Parameters.ParamValues["fio"] := LabeledEditFIO.Text;
 ADOQueryCB.Parameters.ParamValues["tel"] := LabeledEditTel.Text;
 ADOQueryCB.ExecSQL;
 ADOQueryCB.Close;

Появляется сообщение:
"Ошибка синтаксиса, пропущен оператор 1"
Может проблема в том, что первая колонка в моей таблице - счётчик? Но он же сам должен заполнять поле - "Num"! или нет?

Подскажите, пожалуйста, - как учесть счётчик в своём запросе?


 
Anatoly Podgoretsky ©   (2007-06-16 11:22) [1]

// ADOQueryCB.Parameters.Clear;
ADOQueryCB.SQL.Text := запрос


 
Ral'f   (2007-06-16 11:25) [2]

Да, смешно!
Но что писать в INSERT?
Kontakt (Num, FIO   ---> VALUES ("", :fio
???


 
Anatoly Podgoretsky ©   (2007-06-16 11:29) [3]

Что написано, то и пиши.
И еще, выкинь ты нафиг этот костыль под названием AdoQuery и используй прямой компонент AdoCommand


 
sniknik ©   (2007-06-16 11:30) [4]

а с чего ты решил что проблема в неучтенности счетчика? если оно прямо пишет что ошибка синтаксиса...

хотя, на самом деле ошибка конечно не в синтаксисе, это уже последствия, ошибка в том, что используются компоненты "подпорки" вместо "родных". столько лишних действий в коде, а нужное забыл... (тоже лишнее, для "родных"), догадайся что...

а по правильному то же самое гораздо проще
with ADOCommand do begin
 CommandText:= "INSERT INTO Kontakt (FIO,Telefon) VALUES (:fio,:tel)";
 Parameters.ParamByName("fio").Value:= LabeledEditFIO.Text;
 Parameters.ParamByName("tel").Value:= LabeledEditTel.Text;
 Execute;
end;


 
G_M_S ©   (2007-06-16 11:39) [5]


> ADOQueryCB.SQL.Add("INSERT INTO Kontakt (FIO, Telefon) VALUES
> (:fio, :tel)");

Если мне не изменяет память, перед этим надо писать:

ADOQueryCB.SQL.Close;


 
Anatoly Podgoretsky ©   (2007-06-16 11:53) [6]

У него написано, зато не понимает как этот костыль работатет.


 
Ral'f   (2007-06-16 12:44) [7]

Спасибо!
с "ADOQueryCB.SQL.Text := " всё заработало!


 
Ral'f   (2007-06-16 12:48) [8]

как этот костыль работатет

- действительно! Где можно почитать именно про костыль?
(НЕ про SQL запросы, не про компоненты, а  - когда (что) нужно открывать, очищать, закрывать)


 
Anatoly Podgoretsky ©   (2007-06-16 12:50) [9]

> Ral"f  (16.06.2007 12:48:08)  [8]

Не надо про него читать, про него надо забыть.



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
4-1170189676
head-dron
2007-01-30 23:41
2007.07.08
Захват видео с экрана


1-1178710981
yaJohn
2007-05-09 15:43
2007.07.08
передача строк между Delphi и C#


3-1175946319
boristt
2007-04-07 15:45
2007.07.08
Перехват ошибки от MSSQL Express 2005 (dbExpress)


2-1181809938
Ega23
2007-06-14 12:32
2007.07.08
От какого базового класса надо унаследоваться


2-1181995395
SKIPtr
2007-06-16 16:03
2007.07.08
Работать с модальным окном