Главная страница
    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.047 c
15-1181497626
default
2007-06-10 21:47
2007.07.08
Гостиница в москве


4-1169557572
5n4k3
2007-01-23 16:06
2007.07.08
drag&drop ИЗ ListBox в Проводник


2-1181592639
Bullfrog
2007-06-12 00:10
2007.07.08
Чем можно открыть gif?


1-1178302846
starxxx
2007-05-04 22:20
2007.07.08
Сравнение строки с маской с использованием * и ?


2-1181726745
Клара
2007-06-13 13:25
2007.07.08
Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский