Текущий архив: 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.46 MB
Время: 0.013 c