Форум: "Базы";
Текущий архив: 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