Страница 3 из 4
Re: Вызов процедуры в ard-отчете
Добавлено: 26 мар 2014, 17:23
m0p3e
Итак это все-таки функция, хотя в первом сообщении названа процедурой.
Нужно ли возвращать результат выполнения? Когда экспериментировал с функциями - был какой-то глюк. Подробностей уже не помню за давностью. Всегда использую процедуры.
Re: Вызов процедуры в ard-отчете
Добавлено: 26 мар 2014, 17:30
Руслан
m0p3e писал(а):Итак это все-таки функция, хотя в первом сообщении названа процедурой.
Нужно ли возвращать результат выполнения? Когда экспериментировал с функциями - был какой-то глюк. Подробностей уже не помню за давностью. Всегда использую процедуры.
Это да, функция и результат выполнения возвращать не надо.
Re: Вызов процедуры в ard-отчете
Добавлено: 26 мар 2014, 17:42
Руслан
Подскажите как создать именно процедуру, синтаксис
Re: Вызов процедуры в ard-отчете
Добавлено: 26 мар 2014, 18:05
Руслан
Создал процедуру и ураааааа!!!!!!!!! Заработало!!!!!!!! Спасибо, m0p3e!
Re: Вызов процедуры в ard-отчете
Добавлено: 27 мар 2014, 14:12
Руслан
А как передать в процедуру несколько параметров? Пробовал так:
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(#comp(' + KatsoprNrec + '), ( ' + d1 + ', ' + d2 + '))');
Re: Вызов процедуры в ard-отчете
Добавлено: 27 мар 2014, 14:44
Den
Руслан писал(а):А как передать в процедуру несколько параметров? Пробовал так:
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(#comp(' + KatsoprNrec + '), ( ' + d1 + ', ' + d2 + '))');
А почему d1 и d2 в скобках ?
Re: Вызов процедуры в ard-отчете
Добавлено: 27 мар 2014, 14:51
Руслан
А почему d1 и d2 в скобках ?
Так я и спрашиваю как правильно... Пробовал еще так:
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ('KatsoprNrec', 'd1', 'd2')');
Но ругается на скобку...
Re: Вызов процедуры в ard-отчете
Добавлено: 27 мар 2014, 15:31
edward_K
усе зависит. Если число то никаких скобок не нужно. Если текст, то в одинарных кавычках. Чтобы скушал компилятор либо добавляете +chr(39)+ либо пишите две одинарные кавычки подряд ''. Сделайте переменную, присвойте ей значение , выведите мессагой - если кавычки все на местах то идите дальше.
Re: Вызов процедуры в ard-отчете
Добавлено: 27 мар 2014, 15:34
m0p3e
Руслан писал(а):
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ('KatsoprNrec', 'd1', 'd2')');
Но ругается на скобку...
Как-то так:
Код: Выделить всё
sqlExecDirect('F_IMPORT_NZ(#comp(' + KatsoprNrec + '),#date(' + d1 +'),#date(' + d2 +'))');
Re: Вызов процедуры в ard-отчете
Добавлено: 27 мар 2014, 15:45
Den
Ну вот так у меня не упало и в результат выполнения SQLEXECSTMT вернулось 0 (статус что все ок)
Код: Выделить всё
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
Правда не вернулся nrec почему то результат
но лень допинывать...тем не менее процедуры вызвалась на серваке и отработала
Лучше конечно параметры биндить и в процедуре просто ? через , тогда не будет гемора "ошибься где то лишней кавычкой"
Re: Вызов процедуры в ard-отчете
Добавлено: 27 мар 2014, 16:46
Руслан
Пробовал так запускать процедуру:
Код: Выделить всё
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-отчете
Добавлено: 28 мар 2014, 12:14
Руслан
Может влияет то, что хранимку я регистрировал с одним входным параметром katsoprnrec, а потом уже в ORACLE добавил еще два параметра (дата начала d1 и дата конца d2). Потому как до того
как добавил эти два параметра, процедура вызывалась.
Re: Вызов процедуры в ard-отчете
Добавлено: 28 мар 2014, 12:20
Den
Руслан писал(а):Может влияет то, что хранимку я регистрировал с одним входным параметром katsoprnrec, а потом уже в ORACLE добавил еще два параметра (дата начала d1 и дата конца d2). Потому как до того
как добавил эти два параметра, процедура вызывалась.
Что мешает взять да и попробовать перерегистрировать процедуру с нужным количеством параметров ?
Re: Вызов процедуры в ard-отчете
Добавлено: 28 мар 2014, 12:38
Руслан
Пересоздал процедуру со всеми параметрами, все равно не вызывается((((
Re: Вызов процедуры в ard-отчете
Добавлено: 28 мар 2014, 16:11
Руслан
Ребят помогите с этой гребаной процедурой...