Re: Прямой SQL
Добавлено: 03 сен 2012, 11:56
Обсуждение различных вопросов, связанных с сопровождением, администрированием и программированием
https://ns1.tyumbit.ru/
А это так зачем то нужно так ...вызывать внутри S$UPKATBOX процедуру UPDKATBOX_PR ? Вроде как строчку :savov писал(а): ...
3. Средствами TOAD изменил функцию:Код: Выделить всё
CREATE OR REPLACE FUNCTION "S$UPKATBOX"(NRECREC IN VARCHAR2, MAXC IN NUMBER) RETURN NUMBER IS procedure UPDKATBOX_PR is pragma autonomous_transaction; begin UPDATE VRN.KATBOX SET FCOUNT=MAXC WHERE FNREC=NRECREC; COMMIT; END; BEGIN UPDKATBOX_PR; RETURN 1; END;
Код: Выделить всё
create database link vrnt connect to savinkov IDENTIFIED BY jnxtn1967 using 'vrnt';
Код: Выделить всё
sstr2 = ' select katmc.name from katmc@vrnt where katmc.name='+names+';';
После вмешательства ТП:m0p3e писал(а):С JS дела не имел. Не подскажу.
Код: Выделить всё
sql select ukat(#comp(562949953421323),0) from katbox;
Код: Выделить всё
DSQL_BindCol(iHandle4_2, 1, 'double');
if (DSQL_GetRecord(iHandle4_2)==0)
{ Message(DSQL_GetFieldValueByNum(1),0);
}
Den, прошу прокомментировать создание функции SQL Function .. (): компилятор ругается, говорит- ожидался QUERYDen писал(а):Вообще вызов скалярной функции в dsql для получения просто какого то значения обратно "со своими прибабахами" ))
Нет возможности сейчас потестить на оракле, но под мсскуль работает вот так(по идее и под оракла должно тоже) на простом примере:
Код: Выделить всё
SQL Function GetKontrByMaxNrec (): comp; var res : comp; { res:=(Select max(nrec) from katorg); return res; } Interface test_call_fun; create view ...
Код: Выделить всё
Interface RepLogistika 'Учёт транспорта "' escclose,blue,AlwaysReturn;
Show at (1,1,240,40);
Var
cBasedoc_, cKatorg_, cKndriver_, cTrans_, cKatorgT_, cKatsopr_, cDovFio_, cDover_: comp;
sdtBasedo_, sKatorg_, sVodit_, sCo_, sNazna_: string;
#include Table.vpp
#include CreateView.vpp
SQL Function IntToDateString (_DateInt: integer) : string;
{
var res : string[10];
res:='111111';
return res;
}
...
Код: Выделить всё
SQL Function IntToDateString (_DateInt: integer) : string;
var res : string[10];
{
res:='111111';
return res;
}
Код: Выделить всё
SQL Function IntToDateString (_DateInt: integer) : string;
var res : string[10];
{
res:='111111';
return res;
}
Interface RepLogistika 'Учёт транспорта "' escclose,blue,AlwaysReturn;
Show at (1,1,240,40);
Var
cBasedoc_, cKatorg_, cKndriver_, cTrans_, cKatorgT_, cKatsopr_, cDovFio_, cDover_: comp;
sdtBasedo_, sKatorg_, sVodit_, sCo_, sNazna_: string;
#include Table.vpp
#include CreateView.vpp
...
Код: Выделить всё
SQL Function IntToDateString (_DateInt: integer) : string;
var res : string[10];
{
res:=string(_DateInt); //Здесь пустое значение возвращает
return res;
}
Смысл в том, ради чего dsql применяется- скорость выборки. Можно, конечно, получить в переменную longint, далее на випе переделать в строку- но так не хочу. Вообщем так вот придумал: сделал три функции, получаю дату по кусочкам, потом собираюDen писал(а):а в чем глубокий смысл такой функции, если не секрет - получить дату в строковом виде в dsql ?
Код: Выделить всё
SQL Function IntToDateStringD (_DateInt: longint) : string;
var res : string[2];
{res:= (_DateInt - (floor(_DateInt / 65536) * 65536 + floor((_DateInt - floor(_DateInt / 65536) * 65536) / 256) * 256)); return res;}
SQL Function IntToDateStringM (_DateInt: longint) : string;
var res : string[2];
{res:= FLOOR((_DateInt - FLOOR(_DateInt / 65536) * 65536) / 256); return res;}
SQL Function IntToDateStringY (_DateInt: longint) : string;
var res : string[4];
{res:= FLOOR(_DateInt / 65536); return res;}
Interface RepLogistika 'Учёт транспорта и перевозки ООО "ГК МКС"' escclose,blue,AlwaysReturn;
Show at (1,1,240,40);
...
Function AssemdleDate(sD: string[2]; sM: string[2]; sY: string[4]): string[10]; {Result:= sD+'/'+sM+'/'+sY;}
...
Код: Выделить всё
sql select atl_lastdate from katorg;