Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

TADOStoredProc как правильно?   Найти похожие ветки 

 
Прямой   (2003-12-18 14:24) [0]

БД Oracle 8.1.7
MyStoredProc1[0]:=TADOStoredProc.Create(nil);
MyStoredProc1[0].Connection:=ADOConnection1;
MyStoredProc1[0].ProcedureName:="INS";
Вариант1
MyStoredProc1[0].Parameters.Clear;
MyStoredProc1[0].Parameters.AddParameter;
MyStoredProc1[0].Parameters[0].DataType:=ftString;
MyStoredProc1[0].Parameters[0].Value:="КАКА";
Вариант2
MyStoredProc1[0].Refresh;
MyStoredProc1[0].ParametersюParamByName("NAME").DataType := ftString;
MyStoredProc1[0].Parameters.ParamByName("NAMEFILE1").Value:="КАКА";
Второй вариант работает с "матом"(ваще не работает).
А как нужно правильно? Мне желательно указывать имя передаваемой переменной, чем индекс параметра.


 
Johnmen ©   (2003-12-18 14:31) [1]

Какое значение дашь параметру, так он и будет работать ...
:))))))))))))


 
Прямой   (2003-12-18 14:39) [2]

В хранимой процедуре передаваемый параметр тип NUMERIC
Если явно не указать тип ftInteger, по умолчанию ставиться тип ftBCD, ну наверное грабли очевидны?


 
Johnmen ©   (2003-12-18 14:47) [3]

Сколько принял ?
:)


 
Прямой   (2003-12-18 14:54) [4]

Не пил, не курил и т.п.


 
Семен Сорокин ©   (2003-12-18 14:56) [5]

рабочий вариант:
FspArr.Connection := FConn;
FspArr.ProcedureName := "spInformtelArr";
FspArr.Parameters.CreateParameter("@RETURN_VALUE", ftInteger, pdReturnValue, 10, 0);
FspArr.Parameters.CreateParameter("@cDTA", ftDateTime, pdInput, 0, 0);


 
sniknik ©   (2003-12-18 14:56) [6]

а с чего решил что NUMERIC в Oracle это целое?

сам не знаю про Oracle но в access -
Тип NUMERIC отныне не является синонимом типов FLOAT или DOUBLE. Тип NUMERIC теперь используется как синоним типа DECIMAL
а
DECIMAL - 17 байтов -
Тип данных для хранения точных числовых значений от -10^28 - 1 до 10^28 - 1. Точность (1 - 28) и фактор масштабирования (от 0 до заданной точности) определяются пользователем. По умолчанию точность и фактор масштабирования равны соответственно 18 и 0.


т.е. это дробное число представлено целым, точность после запятой задается.
ftBCD ближе всего.

жестокая правда. граблей на которые можно все свалить нет... ;о))))


 
Johnmen ©   (2003-12-18 14:57) [7]

Тогда сначала почитай
http://ln.com.ua/~openxs/articles/smart-questions-ru.html


 
Прямой   (2003-12-18 15:07) [8]

Постараюсь ещё раз.
Если кинуть на форму компоненты ADOConnection1, ADOStoredProc1,
В RunTime Приконнектиться к базе. Далее
ADOStoredProc1.Parameters.ParamByName("ddd").DataType := ftInteger;
ADOStoredProc1.Parameters.ParamByName("ddd").Value:= 15;
ADOStoredProc1.ExecProc;
Работает я доволен!
Но если создаешь в RunTime
MyStoredProc1[0]:= TADOStoredProc.Create(nil);
И так далее, то не работает, вопрос: -Как правильно?



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

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
6-49674
lefan
2003-11-17 13:20
2004.01.16
Загрузка страницы IdHTTP


1-49539
z.Jenya
2004-01-02 17:24
2004.01.16
ListView


1-49500
Gnom
2004-01-03 17:30
2004.01.16
редактирование текста


1-49515
Zilog_
2004-01-03 10:42
2004.01.16
Как создать окно во весь экран?


14-49771
Knight
2003-12-22 16:16
2004.01.16
Функция разбивающая строку по разделителям...