( ReguestId : Longint;
UserName : StringZ;
Wait : Byte;
dim ExitCode : Word[;
DSN : StringZ;
DSNUser : StringZ;
DSNPsw : StringZ;
DSNTypDB : Byte]) : Longint
Volá externí program FlxPamISIRClient.exe, který umožňuje komunikaci s insolvenčním rejstříkem (ISIR).
Čtěte zde.
Program se nejprve podívá do registru:
REG:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings
, zda existuje klíč:
Path of ISIR Client
Jestliže existuje, hledá se FlxPamISIRClient.exe pomocí tam zadané cesty. Jestliže uvedená hodnota v registru neexistuje, vytvoří se cesta k Pam.Exe a k ní se přípojí adresář ISIRClient a tam se FlxPamISIRClient.exe hledá.
Jestliže tedy bude Pam.Exe nainstalován například do adresáře 'C:\Flux\Bin', bude PVS klient hledán v adresáři: 'C:\Flux\Bin\ISIRClient'.
V tabulce ISIR_POZADAVEK se vytvoří požadavek a jeho ident je právě RequestId.
Jméno uživatele, který zjištění provádí. Obvykle to bude jméno přihlášeného uživatele, které se zjistí makrofunkcí _GetActUser.
_GetActUser(AU_PRIHL_JMENO)
True = Čekej na ukončení externího programu FlxPamISIRClient.exe. Jestli chcete, aby komunikace s PVS serverem pokračovala nezávisle dál, pište False.
V případě vzniku chyby, ukládá program FlxPamISIRClient.exe její podrobné znění do textového souboru FlxPamISIRClientLog.txt.
Nepovinný parametr. Jestliže nebude použit nebo bude prázdný, bude použit systémový DSN.
Nepovinný parametr. Jestliže nebude použit parametr DSN nebo bude DSN prázdný, bude použit systémový DSN uživatel.
Nepovinný parametr. Jestliže nebude použit parametr DSN nebo bude DSN prázdný, bude použito systémové DSN heslo uživatele.
Nepovinný parametr. Jestliže nebude použit parametr DSN nebo bude DSN prázdný, bude použit systémový typ databáze.
Možné typy jsou:
Jestliže funkce dopadne dobře, vrací 0. Jinak vrací systémový kód chyby, jejichž celkový výčet je zde. Zde se také dozvíte, že program FlxPamISIRClient.exe vůbec neexistuje.
Nastavení proxy serveru se bere ze společných systémových hodnot, nebo z registrů. Hodnoty v registrech mají přednost!
reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy Url Adresa reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy User reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy Psw reg:\HKEY_CURRENT_USER\Software\FLUX\GlobalSettings\Proxy Použij
Jestliže bude 'Proxy Použij' = 0, nebude proxy použita. Hodnota 1 znamená: použij proxy.
Podívejte se na: Ostatní procedury a funkce
Příklad:
dim _IDENT : Longint;
dim _DT_VZNIK : DateTime;
dim _UZIV_PAM : String;
dim _DRUH : Longint;
dim _STAV : Longint;
dim _CHYBA : String;
dim _ID_POZADAVEK : Longint;
dim _RC : String[11];
dim _PRIJMENI : String[50];
dim _STAV_RIZENI : String[200];
call Test_RC;
exit
call TestSpojeni;
Exit
procedure TestSpojeni
dim PozId : Longint;
dim Result : Integer;
dim DosResult : Integer;
PozId := PridejPozadavek(0);
if(PozId <> 0)then
DosResult := _ExecISIRClient(PozId, _GetActUser(AU_PRIHL_JMENO), true, Result);
Printup("DosResult:",DosResult," Result:",Result);
call SmazPozadavek(PozId);
endif
endproc { TestSpojeni }
procedure Test_RC
dim DBSet : Word;
dim PozId : Longint;
dim Result : Integer;
dim DosResult : Integer;
PozId := PridejPozadavek(1);
if(PozId <> 0)then
{ Přidáme rodná čísla }
call PridejRCPozadavku(PozId, "7206153493");
call PridejRCPozadavku(PozId, "6504100691");
DosResult := _ExecISIRClient(PozId, _GetActUser(AU_PRIHL_JMENO), true, Result);
Printup("DosResult:",DosResult," Result:",Result);
call ZobrazVysledek(PozId);
call SmazPozadavek(PozId);
endif
endproc { Test_RC }
function PridejPozadavek( Druh : Word)
dim DBSet : Word;
dim PozId : Longint;
dim Result : Integer;
SQLOpen(SQLDB_SYSHANDLE, DBSet);
call Bind_ISIR_POZADAVEK(DBSet);
SQLSelect(DBSet, "ISIR_POZADAVEK", "IDENT=-1", "IDENT");
if _SQLAddNew(DBSet) then
PozId := _IDENT;
_DT_VZNIK := _ActDateTime;
_UZIV_PAM := "Flux";
_DRUH := Druh;
_STAV := 0;
_CHYBA := " ";
if _SQLUpdate(DBSet)=false then
_MsgBox(0, "Chyba při _SQLUpdate", 0);
PozId := 0;
endif
SQLClose(DBSet);
else
_MsgBox(0, "Chyba při _SQLAddNew", 0);
PozId := 0;
endif
return PozId;
endfunc { PridejPozadavek }
procedure PridejRCPozadavku( PozId : Longint;
RC : String[11])
dim DBSet : Word;
dim Result : Integer;
SQLOpen(SQLDB_SYSHANDLE, DBSet);
call Bind_ISIR_POZADAVEK_RC(DBSet);
SQLSelect(DBSet, "ISIR_POZADAVEK_RC", "ID_POZADAVEK=-1", "ID_POZADAVEK");
if _SQLAddNew(DBSet) then
_ID_POZADAVEK := PozId;
_RC := RC;
if _SQLUpdate(DBSet)=false then
_MsgBox(0, "Chyba při _SQLUpdate", 0);
PozId := 0;
endif
SQLClose(DBSet);
else
_MsgBox(0, "Chyba při _SQLAddNew", 0);
endif
endproc { PridejPozadavek }
procedure ZobrazVysledek( PozId : Longint)
dim DBSet : Word;
dim Result : Integer;
SQLOpen(SQLDB_SYSHANDLE, DBSet);
call Bind_ISIR_POZADAVEK_VYSLEDEK(DBSet);
SQLSelect(DBSet, "ISIR_POZADAVEK_VYSLEDEK", "ID_POZADAVEK=" + _Str(PozId), "ID_POZADAVEK");
if _SQLFirst(DBSet) then
repeat
Trace("RC:",_RC,", Příjmení:",_PRIJMENI,", Stav:",_STAV_RIZENI);
until _SQLNext(DBSet) = False;
SQLClose(DBSet);
endif
endproc { ZobrazVysledek }
procedure SmazPozadavek( PozId : Longint)
SQLExecute(SQLDB_SYSHANDLE, "delete from ISIR_POZADAVEK where IDENT = " + _Str(PozId));
SQLExecute(SQLDB_SYSHANDLE, "delete from ISIR_POZADAVEK_RC where ID_POZADAVEK = " + _Str(PozId));
SQLExecute(SQLDB_SYSHANDLE, "delete from ISIR_POZADAVEK_VYSLEDEK where ID_POZADAVEK = " + _Str(PozId));
endproc { SmazPozadavek }
procedure Bind_ISIR_POZADAVEK( DBSet : Word)
SQLBindPK(DBSet,"IDENT", _IDENT);
SQLBind(DBSet, "DT_VZNIK", SQL_DATETIME, _DT_VZNIK,
"UZIV_PAM", SQL_VARCHAR, _UZIV_PAM,
"DRUH", SQL_INTEGER, _DRUH,
"STAV", SQL_INTEGER, _STAV,
"CHYBA", SQL_VARCHAR, _CHYBA
);
endproc { Bind_ISIR_POZADAVEK }
procedure Bind_ISIR_POZADAVEK_RC( DBSet : Word)
SQLBind(DBSet, "ID_POZADAVEK", SQL_INTEGER, _ID_POZADAVEK,
"RC", SQL_VARCHAR, _RC
);
endproc { Bind_ISIR_POZADAVEK_RC }
procedure Bind_ISIR_POZADAVEK_VYSLEDEK( DBSet : Word)
SQLBind(DBSet, "ID_POZADAVEK", SQL_INTEGER, _ID_POZADAVEK,
"RC", SQL_VARCHAR, _RC,
"PRIJMENI", SQL_VARCHAR, _PRIJMENI,
"STAV_RIZENI", SQL_VARCHAR, _STAV_RIZENI
);
endproc { Bind_ISIR_POZADAVEK_VYSLEDEK }