Instrukcja administratora > Funkcje API > Operacje na bazie danych > Dostęp do pól w tabelach

Drukuj

Dostęp do pól w tabelach

function GetTableFieldAsString(Handle:Integer; Name,Value:PChar):Boolean;stdcall;

Odczytuje wartość pola znakowego w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

Value - 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ć (PChar) 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().

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 WideChar;

var pca2:array [0..11] of WideChar;

GetTableFieldAsString(DanePersonalneT,'PESEL',pca1);

GetTableFieldAsString(DanePersonalneT,'PESEL',pca2);

 

function GetTableFieldAsInteger(Handle:Integer; Name:PChar):LResult;stdcall;

Odczytuje wartość pola liczbowego w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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

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;

Odczytuje wartość pola typu Boolean w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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

 

function GetTableFieldAsDate(Handle:Integer; Name:PChar):Double;stdcall;

Odczytuje wartość pola daty i czasu w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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;

Odczytuje wartość pola zmiennoprzecinkowego w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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;

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

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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 jeśli 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

Value - wartość pola jako typ PChar
 

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;

Ustawia wartość pola liczbowego w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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

 

procedure SetTableFieldAsBooleanr(Handle:Integer; Name:PChar; Value:Integer);stdcall;

Ustawia wartość pola typu Boolean w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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

 

procedure SetTableFieldAsDate(Handle:Integer; Name:PChar; Value:Double);stdcall;

Ustawia wartość pola daty i czasu w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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;

Ustawia wartość pola zmiennoprzecinkowego w tabeli.

Parametry

Handle - uchwyt tabeli zwrócony przez OpenTable()

Name - nazwa pola tabeli

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

 

function SetTableFieldAsBytes(Handle:Integer; Name:PChar; 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

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;

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

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

 

Zwracane wartości
Zwraca True jeśli operacja się powiodła

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;

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

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

Zwracane wartości
Zwraca True jeśli operacja się powiodła

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.