Вызов процедуры в ard-отчете
Модераторы: m0p3e, edward_K, Модераторы
Re: Вызов процедуры в ard-отчете
Итак это все-таки функция, хотя в первом сообщении названа процедурой.
Нужно ли возвращать результат выполнения? Когда экспериментировал с функциями - был какой-то глюк. Подробностей уже не помню за давностью. Всегда использую процедуры.
Нужно ли возвращать результат выполнения? Когда экспериментировал с функциями - был какой-то глюк. Подробностей уже не помню за давностью. Всегда использую процедуры.
Re: Вызов процедуры в ard-отчете
Это да, функция и результат выполнения возвращать не надо.m0p3e писал(а):Итак это все-таки функция, хотя в первом сообщении названа процедурой.
Нужно ли возвращать результат выполнения? Когда экспериментировал с функциями - был какой-то глюк. Подробностей уже не помню за давностью. Всегда использую процедуры.
Re: Вызов процедуры в ard-отчете
Подскажите как создать именно процедуру, синтаксис
Re: Вызов процедуры в ard-отчете
Создал процедуру и ураааааа!!!!!!!!! Заработало!!!!!!!! Спасибо, m0p3e!
Re: Вызов процедуры в ard-отчете
А как передать в процедуру несколько параметров? Пробовал так:
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(#comp(' + KatsoprNrec + '), ( ' + d1 + ', ' + d2 + '))');
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Вызов процедуры в ard-отчете
А почему d1 и d2 в скобках ?Руслан писал(а):А как передать в процедуру несколько параметров? Пробовал так:Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(#comp(' + KatsoprNrec + '), ( ' + d1 + ', ' + d2 + '))');
Re: Вызов процедуры в ard-отчете
Так я и спрашиваю как правильно... Пробовал еще так:А почему d1 и d2 в скобках ?
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ('KatsoprNrec', 'd1', 'd2')');
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Вызов процедуры в ard-отчете
усе зависит. Если число то никаких скобок не нужно. Если текст, то в одинарных кавычках. Чтобы скушал компилятор либо добавляете +chr(39)+ либо пишите две одинарные кавычки подряд ''. Сделайте переменную, присвойте ей значение , выведите мессагой - если кавычки все на местах то идите дальше.
Re: Вызов процедуры в ard-отчете
Как-то так:Руслан писал(а):Но ругается на скобку...Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ('KatsoprNrec', 'd1', 'd2')');
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(#comp(' + KatsoprNrec + '),#date(' + d1 +'),#date(' + d2 +'))');
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Вызов процедуры в ard-отчете
Ну вот так у меня не упало и в результат выполнения SQLEXECSTMT вернулось 0 (статус что все ок)
Правда не вернулся nrec почему то результат но лень допинывать...тем не менее процедуры вызвалась на серваке и отработала
Лучше конечно параметры биндить и в процедуре просто ? через , тогда не будет гемора "ошибься где то лишней кавычкой"
Код: Выделить всё
SQL Procedure TESTPRO (
s : string
);
var
c1 : comp;
{
c1 := #comp(0);
c1 :=(
SELECT nrec FROM katorg where name=s
);
return c1;
}
-----------------------
.form sss
.ard
.table blank
.var
stmt : longint;
li4 : integer;
s: string;
n_rec : comp;
.endvar
.begin
s:='Абанина Бэла Олеговна';
stmt := sqlAllocStmt;
sqlBindCol(stmt,1,n_rec);
SqlBindParam(stmt, 1,s);
LI4:= SQLEXECSTMT(STMT,'TESTPRO(?)');
Message('li4='+li4);
sqlFetch(stmt);
Message('nrec='+n_rec);
end.
.endform
Лучше конечно параметры биндить и в процедуре просто ? через , тогда не будет гемора "ошибься где то лишней кавычкой"
Re: Вызов процедуры в ard-отчете
Пробовал так запускать процедуру:
Пробовал так:
Так просто выкидывает из Галактики и процедура не отрабатывает:
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(#comp(' + KatsoprNrec + '),#date(' + d1 +'),#date(' + d2 +'))');
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(''KatsoprNrec'', ''d1'', ''d2'')');
Код: Выделить всё
stmt := sqlAllocStmt;
sqlBindCol(stmt, 1, nresult);
sqlBindParam( stmt, 1, KatsoprNrec );
sqlBindParam( stmt, 2, d1 );
sqlBindParam( stmt, 3, d2 );
sqlExecStmt(stmt, 'select top 1 F_IMPORT_NZ (?, ?, ?) from GROUPUSL');
while sqlFetch(stmt) = tsOk do
nresult2:=string(nresult);
sqlFreeStr(stmt);
Re: Вызов процедуры в ard-отчете
Может влияет то, что хранимку я регистрировал с одним входным параметром katsoprnrec, а потом уже в ORACLE добавил еще два параметра (дата начала d1 и дата конца d2). Потому как до того
как добавил эти два параметра, процедура вызывалась.
как добавил эти два параметра, процедура вызывалась.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Вызов процедуры в ard-отчете
Что мешает взять да и попробовать перерегистрировать процедуру с нужным количеством параметров ?Руслан писал(а):Может влияет то, что хранимку я регистрировал с одним входным параметром katsoprnrec, а потом уже в ORACLE добавил еще два параметра (дата начала d1 и дата конца d2). Потому как до того
как добавил эти два параметра, процедура вызывалась.
Re: Вызов процедуры в ard-отчете
Пересоздал процедуру со всеми параметрами, все равно не вызывается((((
Re: Вызов процедуры в ard-отчете
Ребят помогите с этой гребаной процедурой...