【发布时间】:2017-06-01 15:09:38
【问题描述】:
我正在处理包含一些 TQuery 组件的遗留代码。我试图创建一个将 TQuery 参数转换为 TParameters 的函数,以便我可以将它们分配给 ADO 组件(如 ADOQuery 或 ADODataSet)的 Parameters 属性。
我尝试了以下我从互联网上获得的。
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;
但我收到无效的类类型转换错误。当我调试代码时,我发现错误发生在 ADODB 单元中的这个函数上
function TParameters.GetCommand: TADOCommand;
begin
Result := GetOwner as TADOCommand;
end;
请帮忙。我正在使用 Delphi 5
【问题讨论】:
-
@Victoria 非常感谢这对我有用。那么问题是由于覆盖造成的吗?