Je travaille sur un code existant qui contient des composants TQuery. J'essayais de créer une fonction qui convertit les paramètres TQuery en TParameters afin que je puisse les assigner dans la propriété Parameters d'un composant ADO (comme ADOQuery ou ADODataSet).Comment faire pour convertir un objet TParams (TQuery) en objet TParameters (ADO).?
J'ai essayé ce qui suit, que j'ai obtenu sur internet.
function ConvertToADOParms(Owner: TADODataset; aParams: TParams): TParameters;
var i: integer;
begin
// Convert a standard TParams object to an ADO-specific TParameters object
Result :=nil;
try
if aParams = nil then exit;
Result :=TParameters.create(Owner, TParameter);
for i:=0 to aParams.count - 1 do
begin
if aParams[i] = nil then continue;
with Result.AddParameter do
begin
Name := aParams[i].Name;
Datatype :=aParams[i].DataType;
Direction :=TParameterDirection(aParams[i].ParamType);
Size :=aParams[i].size;
Value :=aParams[i].value;
end;
end;
except
on e:exception do
begin
Result :=nil;
showmessage('Could not convert standard parameter object to ADO parameter object: '+e.message);
end;
end;
end;
Mais j'obtiens erreur de classe non valide Typecast. Quand je débogue le code j'ai trouvé que l'erreur se produit à cette fonction dans l'unité ADODB
function TParameters.GetCommand: TADOCommand;
begin
Result := GetOwner as TADOCommand;
end;
Aide S'il vous plaît. J'utilise Delphi 5
@Victoria Merci beaucoup Cela a fonctionné pour moi.Alors le problème était dû à l'écrasement? –