Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

Как учесть поле-счётчик в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.043 c
4-1169557572
5n4k3
2007-01-23 16:06
2007.07.08
drag&drop ИЗ ListBox в Проводник


2-1180973368
Bora_ru
2007-06-04 20:09
2007.07.08
Копирование папок


2-1181919052
леВый позЕр
2007-06-15 18:50
2007.07.08
рисование


3-1176305371
Lavrenty
2007-04-11 19:29
2007.07.08
формат даты в DBGridEh


15-1181036368
MVGROB
2007-06-05 13:39
2007.07.08
гаспада, мнебы програмера в москве 40000-55000р, срочно. если ест





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский