![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TStoredProc.Params.CreateParam странно выполняеться... [D5, Sybase7 ASA]
Cheg © (2002-12-24 12:13:00)Привет всем. Проблема такая, почему когда я создаю параметры для TStoredProc в порядке отличном от порядка параметров в самой сохраненной процедуре, то процедура выполняеться(или невыполняеться вообще) неправильно. Все параметры получаються перетасованы. Я же работаю с параметрами по имени, какая разница в каком порядке они создаються!??
У меня 11 параметров я создаю их так:
...
with Params do
begin
Clear;
CreateParam(ftInteger,"@p1",ptInput);
CreateParam(ftInteger,"@p2",ptInput);
CreateParam(ftInteger,"@p3",ptInput);
...
end;
ParamByName("@p1").AsInteger := XXX;
ParamByName("@p2").AsInteger := YYY;
ParamByName("@p3").AsString := ZZZ;
...
Если переставить, например создание "@p3" на первое место, то при выполнении получиться путаница параметров.
Если это правило(создавать параметры в том же порядке), то я почему-то нигде этого не встречал. DB: Sybase7 ASA
Cheg (2002-12-24 12:58:00) [1]Нет, это я уже эксперементировал, и код такой вставил
Lady D (2002-12-24 12:52:00) [2]А может быть ошибка в том, что @p3 создается как ftInteger, а присвоение значения выполняется AsString ?
Cheg (2002-12-24 12:52:00) [3]Посмотрел...понял. Но мне это кажеться нелогичным. (( Спасибо большое!)
Lady D (2002-12-24 12:37:00) [4]Ага, понятно. В процедуре TStoredProc.BindParams перебор параметров происходит в цикле с обращением через Params[i]. Так что последовательность создания имеет значение.
Cheg (2002-12-24 12:27:00) [5]Так я использую pbByName, если буду использовать pbByNumbe, смысл тогда в pbByName. И я не могу понять причем тут сама передача параметров от их простого создания??
Lady D (2002-12-24 12:21:00) [6]А Вы не пробовали менять TStoredProc.ParamBindMode?