Вниз
Скачать: CL | DM;

Передача параметров в SQL запросе.   Найти похожие ветки 

← →
Soft ©   (2002-08-24 15:55) [0]

Произвожу запрос в базу Sybase ASA6.0.3 с передачей параметров

Query1.SQL.Clear;
Query1.SQL.Add("insert into logs(id,hostname) values(:id1,:hostname1);");
Query1.ParamByName("id1").AsInteger:=2;
Query1.ParamByName("hostname1").AsString:="gidota";
Query1.ExecSQL;

При запуске SQL монитора отлавливаю как BDE передает параметры
SQL Prepare: Adaptive Server Anywhere 6.0 - insert into logs(id,hostname) values(?,?);
SQL Data In: Adaptive Server Anywhere 6.0 - Param = 1, Name = , Type = fldINT32, Precision = 0, Scale = 0, Data = 1
SQL Data In: Adaptive Server Anywhere 6.0 - Param = 2, Name = , Type = fldZSTRING, Precision = 6, Scale = 0, Data = gidota
SQL Execute: Adaptive Server Anywhere 6.0 - insert into logs(id,hostname) values(?,?);

И при этом выдается ошибка
SQL Error: Adaptive Server Anywhere 6.0 - [Sybase][ODBC Driver][Adaptive Server Anywhere]Count field incorrect: Not enough values for host variables

Это глюк можно исправить, если при передаче параметров в Name=Имя_параметра, а не пустая строка Name = ,.

Как BDE заставить передавать кроме номера еще и имя параметров?


← →
Desdechado ©   (2002-08-24 17:43) [1]

попробуй параметры назвать по-другому, не как поля


← →
Soft ©   (2002-08-24 19:46) [2]

А они и названы по другому id и параметр id1. Вопрос не в названии, а в том, что BDE это название не передает, а только номер параметра, из-за этого глюки. Как заставить BDE передавать имя параметров?



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
1-50772
^Sanya
2002-09-05 14:39
2002.09.16
TStringGrid:


1-50686
Лана Розанова
2002-09-04 16:03
2002.09.16
Фильтры


1-50815
DeMoN-777
2002-09-03 17:33
2002.09.16
Медиа


1-50816
Goph
2002-09-04 00:51
2002.09.16
Вопрос о удаление


14-50909
Neox
2002-08-19 17:20
2002.09.16
литература по ADO




   Наверх