FireDAC.Stan.Param.TFDParam.ArrayType
Delphi
property ArrayType: TFDParamArrayType read FArrayType write SetArrayType default atScalar;
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
property | published | FireDAC.Stan.Param.pas | FireDAC.Stan.Param | TFDParam |
Description
Représente le type d'un objet valeur de tableau TFDParam.
La propriété ArrayType représente le type d'un objet valeur de tableau TFDParam, qui peut être :
atScalar
- un paramètre n'ayant pas une valeur de tableau.atArray
- un paramètre ayant une valeur de tableau, auquel cas le paramètre a une valeur de tableau et est unifié avec les autres paramètres. Il s'agit généralement d'un paramètre de commande Array DML.atTable
- un paramètre ayant une valeur de tableau, auquel cas le paramètre a un type de données de tableau spécifique au SGBD.
Exemple
Voici un extrait de code qui montre comment utiliser TFDParam.ArrayType=atTable
pour envoyer des tableaux au serveur :
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();
- Remarque : Cet extrait de code fonctionne pour InterBase, Firebird et PostgreSQL.
Voir aussi
- Exemple FireDAC InterBase Arrays
- Exemple FireDAC PostgreSQL Arrays