В Delphi 5-7 в хранимой процедуре параметры по умолчнанию, к
От: mik_bor  
Дата: 24.12.05 12:32
Оценка:
Привет всем! Обнаружена серёзная ошибка в Delphi 5-7 (BDE + MS SQL 2000). В 3 версии отсутствовала. Пусть у вас есть на MS SQL 2000 сервере хранимая процедура у котрой часть параметров имеет значение по умолчанию

PROCEDURE proc_test
@par1 int,
@par2 int=0
as
begin
.........
end

если на форму бросить компонент TStoreProc и свзать его с proc_test, то появятся два параметра. При вызове пишем

StoreProc1.ParamByName('@par1').AsInteger =1;
StoreProc1.ExecSql;
И получаем ошибку! Причем эта ошибка не SQL Server а VCL +BDE не провстили процедуру у которой в дизайнере 2 параметра, и второй не имет значения! Попытка в дизайнере сделать Value второго параметра нужного типа, но не писать значение успеха не имеет — если нет значения, то тип не определён!!!! Конечно, если удалить второй параметр в дизайнере, то всё выполняется правильно, но ЭТО НЕ ВЕРНЫЙ СПОПСОБ!!! Кто встречал такое и что делать? В Delphi 3 всё работает корректно!
Re: В Delphi 5-7 в хранимой процедуре параметры по умолчнани
От: kochmin_alexandr Россия  
Дата: 24.12.05 12:35
Оценка:
mb> если на форму бросить компонент TStoreProc и свзать его с proc_test, то
mb> появятся два параметра. При вызове пишем

mb> StoreProc1.ParamByName('@par1').AsInteger =1;

mb> StoreProc1.ExecSql;
mb> И получаем ошибку!

1) а где текст ошибки?
2) попробуй выключить paramCheck у TstoredProc
3) выбрось BDE используй например ADODB

mb> В Delphi 3 всё работает корректно!


мож версия BDE например поменялась, али еще чего.

--
С уважением
Кочмин Александр
Posted via RSDN NNTP Server 2.0
Re[2]: В Delphi 5-7 в хранимой процедуре параметры по умолчн
От: mik_bor  
Дата: 24.12.05 13:15
Оценка:
Здравствуйте, kochmin_alexandr, Вы писали:


mb>> если на форму бросить компонент TStoreProc и свзать его с proc_test, то

mb>> появятся два параметра. При вызове пишем

mb>> StoreProc1.ParamByName('@par1').AsInteger =1;

mb>> StoreProc1.ExecSql;
mb>> И получаем ошибку!

_>1) а где текст ошибки?

_>2) попробуй выключить paramCheck у TstoredProc
_>3) выбрось BDE используй например ADODB

mb>> В Delphi 3 всё работает корректно!


_>мож версия BDE например поменялась, али еще чего.


_>--

_>С уважением
_>Кочмин Александр

Текст ошибки "NULL program pointer encountered ". BDE последнее, на ADO перейти нельзя, таковы условия работы.Кстати с ADO в той же ситуации ошики нет оно (VCL для ADO) правильно выполняет связывани параметров процедуры. Но главное в 3 дельфе все было правильно!
Re[3]: В Delphi 5-7 в хранимой процедуре параметры по умолчн
От: kochmin_alexandr Россия  
Дата: 24.12.05 14:38
Оценка:
mb> Текст ошибки "NULL program pointer encountered ".

мда..

mb> BDE последнее, на ADO перейти нельзя, таковы условия работы.


ну последнее BDE... это дело такое. Надо учесть что нет его больше. Померло оно.

mb> Кстати с ADO в той же ситуации ошики нет оно (VCL для ADO) правильно выполняет связывани

mb> параметров процедуры.

дык.

mb> Но главное в 3 дельфе все было правильно!


Экспериментируй. Поставь BDE постарее например.
Ну и сидел бы на D3 дальше. Раз так на BDE сидишь, что слазить не хочешь.

Да, и ты не провел эксперимент, который я говорил.
Короче, путь этот неправильный, и советчиков толковых не осталось.
Мало вас таких на BDE и с каждым днем все меньше и меньше...

--
С уважением
Кочмин Александр
Posted via RSDN NNTP Server 2.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.