![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача параметров в SQL запросе. [D5, Sybase ASA6.0.3]
Soft © (2002-08-24 15:55:00)Произвожу запрос в базу 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 заставить передавать кроме номера еще и имя параметров?
Soft (2002-08-24 19:46:00) [1]А они и названы по другому id и параметр id1. Вопрос не в названии, а в том, что BDE это название не передает, а только номер параметра, из-за этого глюки. Как заставить BDE передавать имя параметров?
Desdechado (2002-08-24 17:43:00) [2]попробуй параметры назвать по-другому, не как поля