FireDAC.Stan.Param.TFDParam.ArrayType

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

property ArrayType: TFDParamArrayType read FArrayType write SetArrayType default atScalar;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
property published FireDAC.Stan.Param.pas FireDAC.Stan.Param TFDParam


Beschreibung

Repräsentiert den Typ eines Array-wertigen TFDParam-Objekts.

Die Eigenschaft ArrayType repräsentiert den Typ eines Array-wertigen TFDParam-Objekts, das eines der folgenden sein kann:

  • atScalar - ein nicht-Array-wertiger Parameter.
  • atArray - ein Array-wertiger Parameter, wobei der Parameter Array-wertig und mit anderen Parametern vereinheitlicht ist. In den meisten Fällen ist dieser ein Array DML-Anweisungsparameter.
  • atTable - ein Array-wertiger Parameter, wobei der Parameter einen DBMS-spezifischen Array-Datentyp hat.

Beispiel

Hier ist ein Codefragment, das zeigt, wie TFDParam.ArrayType=atTable verwendet werden soll, um Arrays an den Server zu senden:

Delphi:

FDQuery1.SQL.Text := 'insert into FDQA_Array values (:id, :name, :items)';

FDQuery1.Params[0].AsInteger := 1;
FDQuery1.Params[1].AsString := 'test1';

// Setup array typed parameter
FDQuery1.Params[2].ArrayType := atTable;
FDQuery1.Params[2].ArraySize := 4;

// InterBase and Firebird require to specify full field name as parameter data type name
if (FDConnection1.RDBMSKind = TFDRDBMSKinds.Interbase) or (FDConnection1.RDBMSKind = TFDRDBMSKinds.Firebird) then
   FDQuery1.Params[2].DataTypeName := 'FDQA_ARRAY.ITEMS';

// Assign array type parameter values
FDQuery1.Params[2].AsStrings[0] := 'item1';
FDQuery1.Params[2].AsStrings[1] := 'item2';
FDQuery1.Params[2].AsStrings[2] := 'item3';
FDQuery1.Params[2].AsStrings[3] := 'item4';

// Execute SQL command
FDQuery1.ExecSQL;

C++:

FDQuery1->SQL->Text="Insert into FDQA_Array values (:id, :name, :items)";

FDQuery1->Params->Items[0]->AsInteger=1;
FDQuery1->Params->Items[1]->AsString="test1";

// Setup array typed parameter
FDQuery1->Params->Items[2]->ArrayType=atTable;
FDQuery1->Params->Items[2]->ArraySize=4;

// InterBase and Firebird require to specify full field name as parameter data type name
if (FDConnection1->RDBMSKind==TFDRDBMSKinds::Interbase || FDConnection1->RDBMSKind==TFDRDBMSKinds::Firebird)
    FDQuery1->Params->Items[2]->DataTypeName="FDQA_ARRAY.ITEMS";

// Assign array type parameter values
FDQuery1->Params->Items[2]->AsStrings[0]="item1";
FDQuery1->Params->Items[2]->AsStrings[1]="item2";
FDQuery1->Params->Items[2]->AsStrings[2]="item3";
FDQuery1->Params->Items[2]->AsStrings[3]="item4";

// Execute SQL command
FDQuery1->ExecSQL();
Hinweis: Dieses Codefragment funktioniert nur für InterBase, Firebird und PostgreSQL.

Siehe auch