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

Вниз

Странно первый раз добавляеться а потом уже не хочет :((   Найти похожие ветки 

 
Till   (2003-05-20 13:51) [0]

Использую TIBQuery для вставки данных в таблицу InterBase, глюк заметил первая запись втсавляеться нормально, а потм когда меняю значения в полях запись больше не вставляеться говорит
Dynamic SQL Error
SQL error code = -104
Token unknow - line 2, char 1
INSERT.

Вообщем вот так....
Код для обработки кнопки вот...
procedure Tusers.BitBtn1Click(Sender: TObject);
var
sql,l,p,f,m : String;
begin
if (login.text = "") or (fio.text = "") or (pass.text = "") or (mode.ItemIndex = -1)
then
begin
ShowMessage("Одно из полей пустое либо вы не выбрали права доступа для данного пользователя!");
end
else
begin
l := login.Text;
p := pass.Text;
f := fio.Text;
m := mode.Text;
sql := "INSERT INTO KOM_USERS (K_FIO,K_LOGIN,K_MODE,K_PASSWD) values (:f,:l,:m,:p)";
AddQuery.SQL.Add(sql);
AddQuery.ParamByName("f").AsString := f;
AddQuery.ParamByName("l").AsString := l;
AddQuery.ParamByName("m").AsString := m;
AddQuery.ParamByName("p").AsString := p;
AddQuery.ExecSQL;
if UserTable.Active then
UserTable.Refresh;
end;
end;

Подскажите плиз где ошибся, буду благодарен
Заранее спасибО!


 
Zacho   (2003-05-20 13:59) [1]

Ошибка - перед AddQuery.SQL.Add(sql); надо сделать AddQuery.SQL.Clear;
Совет: не стоит использовать для этого TIBQuery - есть специальный компонент TIBSQL.


 
Соловьев   (2003-05-20 14:06) [2]


> Till © (20.05.03 13:51)

странное использование параметризированных запросов...


 
Till   (2003-05-20 14:11) [3]


> Ошибка - перед AddQuery.SQL.Add(sql); надо сделать AddQuery.SQL.Clear;
> Совет: не стоит использовать для этого TIBQuery - есть специальный
> компонент TIBSQL.

Ок пасибо теперя увидел :)))))))))
Спасибо за помощь и совет последую ему!



 
Till   (2003-05-20 14:12) [4]


> Соловьев © (20.05.03 14:06)
>
> > Till © (20.05.03 13:51)
>
> странное использование параметризированных запросов

Чего странного? Я начинающий поэтому так юзаю! Если скажите как лучше буду делать так!


 
Zacho   (2003-05-20 14:16) [5]


> Till © (20.05.03 14:12)

Лучше так: один раз (в design-time или в run-time) прописываешь парметризированный запрос, а потом только присваиваешь значения параметрам.


 
AlexSerp   (2003-05-20 14:21) [6]

И если уж в ран-тайм формируешь текст и знаешь тут же значения параметров, то и пиши их в текст сразу.


 
Соловьев   (2003-05-20 14:21) [7]

Это надо в дизайн-тайме занести:
sql := "INSERT INTO KOM_USERS (K_FIO,K_LOGIN,K_MODE,K_PASSWD) values (:f,:l,:m,:p)"
А это в коде программы:
if AddQuery.Active then AddQuery.Close;
AddQuery.ParamByName("f").AsString := login.Text;
AddQuery.ParamByName("l").AsString := pass.Text;
AddQuery.ParamByName("m").AsString := fio.Text;
AddQuery.ParamByName("p").AsString := mode.Text;
if not AddQuery.Prepared then AddQuery.Prepare;
AddQuery.ExecSQL;


 
Till   (2003-05-20 14:41) [8]


> Соловьев © (20.05.03 14:21)
> Это надо в дизайн-тайме занести:
> sql := "INSERT INTO KOM_USERS (K_FIO,K_LOGIN,K_MODE,K_PASSWD)
> values (:f,:l,:m,:p)"
> А это в коде программы:
> if AddQuery.Active then AddQuery.Close;
> AddQuery.ParamByName("f").AsString := login.Text;
> AddQuery.ParamByName("l").AsString := pass.Text;
> AddQuery.ParamByName("m").AsString := fio.Text;
> AddQuery.ParamByName("p").AsString := mode.Text;
> if not AddQuery.Prepared then AddQuery.Prepare;
> AddQuery.ExecSQL;

Сделал так как вы написали, теперь у меня не чего не добавляеться говори тDatabase not assigned, я уже делал с использованием TIBSQL, не идет :((


 
Соловьев   (2003-05-20 14:58) [9]

полный код, и выставлена транзакция и бд у IBQuery?


 
Till   (2003-05-20 15:02) [10]


> Соловьев © (20.05.03 14:58)
> полный код, и выставлена транзакция и бд у IBQuery?

ой я баран про транзакцию забыл....... болбес... извиняйте :))


 
Zacho   (2003-05-20 16:52) [11]


> Till © (20.05.03 15:02)

Ничего страшного, все когда-то начинали :-)
Удачи !


 
Соловьев   (2003-05-20 17:02) [12]

2 Till ©
только заметил, я там не правильно сопоставил параметры
Соловьев © (20.05.03 14:21), думаю разберешся...


 
Basic   (2003-05-21 00:23) [13]

>Till © (20.05.03 15:02)
>ой я баран про транзакцию забыл....... болбес... извиняйте :))

любишь ты себя шибко



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

Форум: "Базы";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
14-26737
neuro
2003-05-22 17:52
2003.06.09
STL 4 delphi


1-26546
borg
2003-05-28 09:32
2003.06.09
Edit + степень


1-26493
Avreliy
2003-05-29 18:24
2003.06.09
LowerCase для работы с кириллицей.


14-26732
asafr
2003-05-22 15:34
2003.06.09
Резюме сисадмина


1-26438
OlegM
2003-05-29 06:14
2003.06.09
Помогите с CAPS INS NUM клавишами





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