Instrukcja administratora > Funkcje API > Operacje na bazie danych > Dostęp do bazy danych

Drukuj

Dostęp do bazy danych

function ConnectBin(IniPath:PChar):Boolean;stdcall;

Podłącza się do podstawowej bazy danych programu (BIN). Wykorzystuje w tym celu plik RPlatnik.ini, w którym są zawarte informacje o połączeniu z serwerem SQL oraz RPlatnik.prt i RPlatnik.lic, zawierające informacje o posiadanej licencji.

Parametry

IniPath - katalog (w formacie ANSI), wskazujący na wymagane pliki ini, prt i lic (np. C:\RESET2\Platnik.10x\BIN\)

Zwracane wartości

Jeśli połączenie się powiodło zwraca True, w przeciwnym wypadku można odczytać komunikat o błędzie funkcją GetLastError().

Przykład

if not ConnectBin('C:\RESET2\Platnik.10x\BIN\') then begin

  GetLastError(pca);

  ShowMessage(pca);

end;

 

function GetLastError(Value:PChar):Boolean;stdcall;

Podaje szczegółowy komunikat błędu, jeśli taki wystąpił podczas wykonywania funkcji API.

Parametry

Value - wskaźnik na tablicę znakową, w której umieszczony zostanie komunikat o błędzie, tablicę znaków o wystarczającym rozmiarze należy wcześniej zadeklarować

ValueW - wskaźnik na zadeklarowaną tablicę znakową, w której zostanie umieszczony komunikat w formacie UNICODE

Zwracane wartości

Zwraca True jeśli jest dostępny komunikat o błędzie.

Funkcję tą należy wywołać bezpośrednio po funkcji API, która zwróciła błąd, gdyż kolejna funkcja API usunie komunikat o błędzie w poprzedniej funkcji.

Przykład

const MaxLenStr=16384;

var pca:array [0..MaxLenStr-1] of WideChar;

if GetLastError(pca) then ShowMessage(pca);

 

function LoginUser(UserName,UserPassword:PChar):LResult;stdcall;

Loguje użytkownika programu.

Parametry

UserName, UserPassword - nazwa użytkownika i jego hasło do programu

Zwracane wartości

Zwraca identyfikator użytkownika (pole X_I z tabeli UŻYTKOWNICY), jeśli logowanie się powiodło. W przeciwnym wypadku zwraca 0, wtedy szczegółowy komunikat o błędzie można odczytać funkcją GetLastError().

Po połączeniu z bazą BIN za pomocą funkcji ConnectBin() należy zalogować użytkownika. Gwarantuje nam to później poprawny dostęp do tabel programu, zgodnie z prawami dostępu ustawionymi dla konkretnego użytkownika.

Przykład

if not LoginUser('ADMIN','123456') then begin

  GetLastError(pca);

  ShowMessage(pca);

end;

 

function LogoffUser(UserName:PChar):Boolean;stdcall;

Wylogowuje użytkownika.

Parametry

UserName - nazwa użytkownika programu, nazwę możemy pozostawić pustą - wtedy zostanie wylogowany ostatnio zalogowany użytkownik

Zwracane wartości

Zwraca True jeśli wylogowanie się powiodło. W przeciwnym wypadku komunikat o błędzie można odczytać funkcją GetLastError().

Jeśli użytkownik został zalogowany funkcją LoginUser() to jego wylogowanie nastąpi automatycznie przed zakończeniem aplikacji. Funkcji tej należy więc użyć tylko wtedy, jeśli chcemy przelogować się na innego użytkownika.

Przykład

LoginUser('ADMIN','123456');

LogoffUser('');

CloseAllTables;

LoginUser('ALA','654321');

 

function LoginUserAsProgram:LResult;stdcall;

Loguje użytkownika do pracującego programu R2Płatnik.

Parametry

Brak

Zwracane wartości

Zwraca identyfikator użytkownika (pole X_I z tabeli UŻYTKOWNICY) jeśli logowanie się powiodło. W przeciwnym wypadku zwraca 0 i wtedy szczegółowy komunikat o błędzie można odczytać funkcją GetLastError().

Działa podobnie do funkcji LoginUser, z tym że nie potrzebuje parametrów logowania, bo pobiera je z działającego programu R2Płatnik. Funkcja ta może być używana wyłącznie w aplikacjach API, które będą wywoływane bezpośrednio z programu R2Płatnik z Menu-Narzędzia. W takim wypadku nie należy wylogowywać użytkownika funkcją LogoffUser().

 

function ConnectDaneX(FirmIde:integer):Boolean;stdcall;

Łączy się z bazą danych przyporządkowaną do konkretnej firmy. Jeśli mamy program z licencją jednofirmową będzie to z reguły 1

Parametry

FirmIde - identyfikator firmy

Zwracane wartości

Jeśli połączenie się powiodło, zwraca True, w przeciwnym wypadku można odczytać komunikat o błędzie funkcją GetLastError().

Po połączeniu z bazą BIN (ConnectBin()) i zalogowaniu użytkownika (LoginUser()), należy się połączyć z bazą konkretnej firmy, podając jej identyfikator. Identyfikator konkretnej firmy, obsługiwanej przez program, można odczytać z tabeli z firmami (kolumna X_I w tabeli FIRMY). Tabela ta znajduje się w bazie BIN. (pole X_I).

Przykład

if not ConnectDaneX(1) then begin

  GetLastError(pca);

  ShowMessage(pca);

end;