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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-26526
Arch-vile
2003-05-24 11:22
2003.06.09
Сохранение шрифта в INI-файле


14-26713
sachem
2003-05-21 20:07
2003.06.09
Как убрать свою программу из списка ctrl-alt-del


3-26339
Jaxtor
2003-05-20 11:12
2003.06.09
DBComboBox


3-26392
AlexAvz
2003-05-21 15:22
2003.06.09
БД PARADOX


14-26673
Akni
2003-05-21 12:04
2003.06.09
E-Mail Attach