|
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..11] of Char;
GetTableFieldAsString(DanePersonalneT,'PESEL',pca1);
GetTableFieldAsString(DanePersonalneT,'PESEL',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(DanePersonalneT,'Drugie_imie');
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(DanePersonalneT,'Data_urodzenia')
if GetLastError(pca) then ShowMessage(pca)
else ShowMessage('Data urodzenia: '+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(DanePersonalneT) then begin
GetLastError(pca);
ShowMessage(pca);
exit;
end;
if not SetTableFieldAsString(DanePersonalneT,'PESEL','11223344444') then begin
GetLastError(pca);
ShowMessage(pca);
TableCancel(DanePersonalneT);
exit;
end;
if not TablePost(DanePersonalneT) then begin
GetLastError(pca);
ShowMessage(pca);
TableCancel(DanePersonalneT);
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(DanePersonalneT,'Data_urodzenia',StrToDate('1972-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 Płeć w tabeli DANE PERSONALNE jest typu SmallInt i ma zdeniowane wartości słownikowe kobieta;mężczyzna dla odpowiadających mu wartości liczbowych 0;1. Funkcja ta zwróci w zmiennej Value kobieta;mężczyzna.
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 Płeć w tabeli DANE PERSONALNE jest typu SmallInt i ma zdeniowane wartości słownikowe kobieta;mężczyzna dla odpowiadających mu wartości liczbowych 0;1. Funkcja ta zwróci w zmiennej Value 0;1.