Главная страница
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.019 c
14-49711
Феликс
2003-12-24 23:21
2004.01.16
Вопросы по информатике, но не по программированю. (Word, Excel)


4-49809
Tracer
2003-11-12 12:29
2004.01.16
Как прочитать информацию с чужй формы (Заголовок формы известен)


3-49464
TATIANA
2003-12-17 15:28
2004.01.16
ДОБАВИТЬ ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ В BLOB-поле


3-49393
Ermek
2003-12-19 01:52
2004.01.16
расширением стандартного компонента Ole Container


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