Главная страница
    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-26666
Top Gun
2003-05-24 12:58
2003.06.09
Ссылка на прикол


14-26677
Yr2
2003-05-24 17:22
2003.06.09
Компонент для отображения многокадрового GIF (анимация)


1-26607
AFrolov
2003-05-28 12:47
2003.06.09
Как получить ссылку на интерфейс


14-26749
Real
2003-05-15 20:14
2003.06.09
Как тупят программисты?


4-26851
Valek
2003-04-10 05:39
2003.06.09
Дерево с чекбоксами





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