Dostęp do pól w tabelach - Instrukcja obsługi programu R2środki, R2środkiPRO, R2środkiSBO RESET2 Oprogramowanie
Strona używa plików cookies (tzw. ciasteczka) do przechowywania i uzyskiwania dostępu do tej informacji w celach funkcjonalnych, statystycznych i reklamowych.
Użytkownik wyraża zgodę oraz określa warunki przechowywania lub uzyskiwania dostępu do informacji zawartej w plikach cookies za pomocą ustawień przeglądarki.
Dowiedz się więcej odwiedzając strony:

Polityka Prywatności    Regulamin sklepu      Jak wyłączyć cookies?

Przejdź do serwisu

Instrukcja obsługi R2środki



Dostęp do pól w tabelach

Dostęp do pól w tabelach

Funkcje API

function GetTableFieldAsString(Handle:integer; Name,Value:PChar):Boolean;stdcall;
function GetTableFieldAsStringW(Handle:integer; NameW,ValueW:PWideChar):Boolean;stdcall;

Odczytuje wartość pola znakowego w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wskaźnik na tablicę znakową (ciąg znaków ANSI (1-bajtowych) zakończonych '\0'), w której umieszczona zostanie zawartość pola Name, tablicę znaków o wystarczającym rozmiarze należy wcześniej zadeklarować (Array[0..n] of Char) statycznie lub zaalokować (PChar) dynamicznie

  • ValueW - wskaźnik na tablicę znakową (ciąg znaków UNICODE (2-bajtowych) zakończonych '\0'), w której umieszczona zostanie zawartość pola Name, tablicę znaków o wystarczającym rozmiarze należy wcześniej zadeklarować (Array[0..n] of WideChar) statycznie lub zaalokować (PWideChar) dynamicznie

Zwracane wartości

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

Uwagi

Zmienna Value musi zawierać tyle znaków (bajtów), jak długie może być pole Name i dodatkowo miejsce na końcowy znak '\0'. Długość pola można odczytać w strukturze bazy danych lub zadaklarować jedną globalną zmienną do odczytu wszystkich pól znakowych.

Przykład

const MaxLenStr=16384;
var pca1:array [0..MaxLenStr-1] of Char;
var pca2:array [0..50] of Char;
GetTableFieldAsString(StT,'Skrot',pca1);
GetTableFieldAsString(StT,'Skrot',pca2);


function GetTableFieldAsInteger(Handle:integer; Name:PChar):LResult;stdcall;
function GetTableFieldAsIntegerW(Handle:integer; NameW:PWideChar):LResult;stdcall;

Odczytuje wartość pola liczbowego w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

Zwracane wartości

Zwraca wartość pola Name jako typ LResult (integer - liczba całkowita na 4 bajtach).

Uwagi

We wszystkich funkcjach typu GetTableFieldsAs... niezależnie od zwróconej wartości można odczytać ewentualny komunikat o błędzie funkcją GetLastError().

Przykład


var i:integer;
i:=GetTableFieldAsInteger(StT,'Nr_ewidencyjny');
if GetLastError(pca) then ShowMessage(pca);


function GetTableFieldAsBoolean(Handle:integer; Name:PChar):Boolean;stdcall;
function GetTableFieldAsBooleanW(Handle:integer; NameW:PWideChar):Boolean;stdcall;

Odczytuje wartość pola typu Boolean w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

Zwracane wartości

Zwraca wartość pola Name jako typ Boolean (True lub False - 1 bajt).


function GetTableFieldAsDate(Handle:integer; Name:PChar):Double;stdcall;
function GetTableFieldAsDateW(Handle:integer; NameW:PWideChar):Double;stdcall;

Odczytuje wartość pola daty i czasu w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

Zwracane wartości

Zwraca wartość pola Name jako typ Double (double - liczba zmiennoprzecinkowa na 8 bajtach). Wartość daty i czasu jest zakodowana w zwracanej wartości jako: data - część całkowita (liczba dni od 31-12-1899), czas - część po przecinku (liczba setnych części sekund od godz 00:00:00).

Przykład

dat: TDateTime;
dat:=GetTableFieldAsDate(OperacT,'Data')
if GetLastError(pca) then ShowMessage(pca)
else ShowMessage('Data operacji: '+DateToStr(dat));


function GetTableFieldAsFloat(Handle:integer; Name:PChar):Double;stdcall;
function GetTableFieldAsFloatW(Handle:integer; NameW:PWideChar):Double;stdcall;

Odczytuje wartość pola zmiennoprzecinkowego w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

Zwracane wartości

Zwraca wartość pola Name jako typ Double (double - liczba zmiennoprzecinkowa na 8 bajtach).


function GetTableFieldAsBytes(Handle:integer; Name:PChar; Buffer:Pointer):Boolean;stdcall;
function GetTableFieldAsBytesW(Handle:integer; NameW:PWideChar; Buffer:Pointer):Boolean;stdcall;

Odczytuje wartość pola typu tablica bajtów w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Buffer - wskaźnik na bufor, gdzie ma być przesłana tablica bajtów. Bufor musi mieć odpowiedni rozmiar (tyle bajtów ile ma pole w bazie)

Zwracane wartości

Zwraca True jesli operacja się powiodła


procedure SetTableFieldAsString(Handle:integer; Name:PChar; Value:PChar);stdcall;

Ustawia wartość pola znakowego w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wartość pola jako typ PChar (łańcuch znaków ANSI)

  • ValueW - wartość pola jako typ PChar (łańcuch znaków UNICODE)

Uwagi

1. Przed wywołaniem dowolnej funkcji typu SetTableFieldsAs... należy wprowadzić tabelę w tryb edycji (dsEdit lub dsInsert) funkcjami TableEdit() lub TableInsert(), a następnie zaakceptować nowe wartości funkcją TablePost() lub ewentualnie powrócić w stan dsBrowse bez akceptacji nowych wartości funkcją TableCancel().

2. Po ustawieniu wartości pola funkcją typu SetTableFieldsAs... można sprawdzić, czy nowa wartość jest akceptowalna i odczytać ewentualny komunikat o błędzie funkcją GetLastError().

Przykład

if not TableEdit(StT) then begin
   GetLastError(pca);
   ShowMessage(pca);
   exit;
end;
if not SetTableFieldAsInteger(StT,'Nr_kolejny','123') then begin
   GetLastError(pca);
   ShowMessage(pca);
   TableCancel(StT);
   exit;
end;
if not TablePost(StT) then begin
   GetLastError(pca);
   ShowMessage(pca);
   TableCancel(StT);
end;


procedure SetTableFieldAsInteger(Handle:integer; Name:PChar; Value:integer);stdcall;
procedure SetTableFieldAsIntegerW(Handle:integer; NameW:PWideChar; Value:integer);stdcall;

Ustawia wartość pola liczbowego w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wartość pola jako typ Integer (liczba całkowita)


procedure SetTableFieldAsInteger(Handle:integer; Name:PChar; Value:integer);stdcall;
procedure SetTableFieldAsIntegerW(Handle:integer; NameW:PWideChar; Value:integer);stdcall;

Ustawia wartość pola typu Boolean w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wartość pola jako typ Boolean (True, False)


procedure SetTableFieldAsDate(Handle:integer; Name:PChar; Value:Double);stdcall;
procedure SetTableFieldAsDateW(Handle:integer; NameW:PWideChar; Value:Double);stdcall;

Ustawia wartość pola daty i czasu w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wartość pola jako typ Double (data - część całkowita; czas - część zmiennoprzecinkowa)

Przykład

SetTableFieldAsDate(OperacT,'Data',StrToDate('2013-12-31'));


procedure SetTableFieldAsFloat(Handle:integer; Name:PChar; Value:Double);stdcall;
procedure SetTableFieldAsFloatW(Handle:integer; NameW:PWideChar; Value:Double);stdcall;

Ustawia wartość pola zmiennoprzecinkowego w tabeli.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wartość pola jako typ Double (liczba zmiennoprzecinkowa)


function SetTableFieldAsBytes(Handle:integer; Name:PChar; Buffer:Pointer):Boolean;stdcall;
function SetTableFieldAsBytesW(Handle:integer; NameW:PWideChar; Buffer:Pointer):Boolean;stdcall;

Zapisuje zawartośc bufora do pola typu tablica bajtów.

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Buffer - wskaźnik na bufor, skąd ma być przesłana tablica bajtów. Bufor musi mieć odpowiedni rozmiar (tyle bajtów ile ma pole w bazie)

Zwracane wartości

Zwraca True jesli operacja się powiodła


function GetTableFieldStrings(Handle:integer; Name,Value:PChar):Boolean;stdcall;
function GetTableFieldStringsW(Handle:integer; NameW,ValueW:PWideChar):Boolean;stdcall;

Odczytuje zbiór dostępnych wartości słownikowych pola typu SmallInt jako łańcuchy znaków, jeśli taki zbiór został w aplikacji zdefiniowany

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wskaźnik na tablicę znaków ANSI, w której umieszczone zostaną możliwe wartości TEKSTOWE pola (oddzielone średnikami)

  • ValueW - wskaźnik na tablicę znaków UNICODE, w której umieszczone zostaną możliwe wartości tekstowe pola (oddzielone średnikami)

Zwracane wartości

Zwraca True jesli operacja się powiodła

Uwagi

Na przykład pole Rodzaj w tabeli ŚRODKI TRWAŁE jest typu SmallInt i ma zdeniowane wartości słownikowe:
ŚT - Środek trwały;WNiP - Wart.niem.i praw.;ŚToNW - ŚT o nisk.wart.;WNiPoNW - WNiP o nisk.w.
dla odpowiadających mu wartości liczbowych 0;1;2;3


function GetTableFieldValues(Handle:integer; Name,Value:PChar):Boolean;stdcall;
function GetTableFieldValuesW(Handle:integer; NameW,ValueW:PWideChar):Boolean;stdcall;

Odczytuje zbiór dostępnych wartości liczbowych pola typu SmallInt jako liczby całkowite, jeśli taki zbiór został w aplikacji zdefiniowany

Parametry

  • Handle - uchwyt tabeli zwrócony przez OpenTable()

  • Name - nazwa pola tabeli (ANSI)

  • NameW - nazwa pola tabeli (UNICODE)

  • Value - wskaźnik na tablicę znaków ANSI, w której umieszczone zostaną możliwe wartości LICZBOWE pola (oddzielone średnikami)

  • ValueW - wskaźnik na tablicę znaków UNICODE, w której umieszczone zostaną możliwe wartości liczbowe pola (oddzielone średnikami)

Zwracane wartości

Zwraca True jesli operacja się powiodła

Uwagi

Na przykład pole Rodzaj w tabeli ŚRODKI TRWAŁE jest typu SmallInt zwróci wartości liczbowe
0;1;2;3
dla odpowiadających wartości słownikowych:
ŚT - Środek trwały;WNiP - Wart.niem.i praw.;ŚToNW - ŚT o nisk.wart.;WNiPoNW - WNiP o nisk.w.