FetchParams (C++)
Description
This example saves parameters from a ClientDataSet, alters them, and restores them.
Code
TParams *SavedParams;
void __fastcall TForm1::SaveParamsClick(TObject *Sender)
{
// Save the parameters for the TDataSet
SavedParams->Assign(CDS->Params);
}
void __fastcall TForm1::AlterParamsClick(TObject *Sender)
{
CDS->Params->CreateParam(ftString, "stringParam", ptInput); // You can also dynamically edit the parameters in the CDS.
CDS->Params->CreateParam(ftSmallint, "smallIntParam", ptInput);
CDS->Params->CreateParam(ftInteger, "intParam", ptInput);
CDS->Params->CreateParam(ftWord, "wordParam", ptInput);
CDS->Params->CreateParam(ftBoolean, "boolParam", ptInput);
CDS->Params->CreateParam(ftFloat, "floatParam", ptInput);
CDS->Params->CreateParam(ftCurrency, "currencyParam", ptInput);
CDS->Params->CreateParam(ftBCD, "bcdParam", ptInput);
CDS->Params->CreateParam(ftDate, "dateParam", ptInput);
CDS->Params->CreateParam(ftTime, "timeParam", ptInput);
CDS->Params->CreateParam(ftDateTime, "dateTimeParam", ptInput);
// Call FetchParams to ensure that the parameters reflect server metadata.
CDS->FetchParams();
for (int I = 0; I < CDS->Params->Count; I++)
{
String ListItem = ListBox1->Items->Strings[I];
switch (CDS->Params->Items[I]->DataType)
{
case ftString:
CDS->Params->Items[I]->AsString = ListItem; break;
case ftSmallint:
CDS->Params->Items[I]->AsSmallInt = StrToIntDef(ListItem, 0); break;
case ftInteger:
CDS->Params->Items[I]->AsInteger = StrToIntDef(ListItem, 0); break;
case ftWord:
CDS->Params->Items[I]->AsWord = StrToIntDef(ListItem, 0); break;
case ftBoolean:
CDS->Params->Items[I]->AsBoolean = (ListItem == "True"); break;
case ftFloat:
CDS->Params->Items[I]->AsFloat = StrToFloat(ListItem); break;
case ftCurrency:
CDS->Params->Items[I]->AsCurrency = double(StrToFloat(ListItem)); break;
case ftBCD:
CDS->Params->Items[I]->AsBCD = StrToCurr(ListItem); break;
case ftDate:
CDS->Params->Items[I]->AsDate = StrToDate(ListItem); break;
case ftTime:
CDS->Params->Items[I]->AsTime = StrToTime(ListItem); break;
case ftDateTime:
CDS->Params->Items[I]->AsDateTime = StrToDateTime(ListItem); break;
}
}
}
void __fastcall TForm1::RestoreParamsClick(TObject *Sender)
{
// Restore the parameters to TDataSet.
CDS->Params->AssignValues(SavedParams);
}
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
// Initialize SavedParams.
SavedParams = new TParams;
ListBox1->Items->Add("Here is a string");
ListBox1->Items->Add("4");
ListBox1->Items->Add("3456789");
ListBox1->Items->Add("34");
ListBox1->Items->Add("0");
ListBox1->Items->Add("12.56");
ListBox1->Items->Add("4.23");
ListBox1->Items->Add("99.5");
ListBox1->Items->Add("4/12/53");
ListBox1->Items->Add("7:45:00");
ListBox1->Items->Add("4/12/53 7:45:00");
}
Uses
- Datasnap.DBClient.TCustomClientDataSet.FetchParams ( fr | de | ja )
- Datasnap.DBClient.TCustomClientDataSet.Params ( fr | de | ja )
- Data.DB.TParam.DataType ( fr | de | ja )
- Data.DB.TParams.Items ( fr | de | ja )