Hallo,
habe ein Problem mit einer TADOQuery-Komponente bei der Benutzung innerhalb eines Package. Hier erstmal der Sourcecode:
function Tta_Excel.getValue(AName,ADefault:string):string;
var
adoConn : TADOConnection;
adoQuery : TADOQuery;
begin
result := ADefault;
if (Length(Trim(AName)) <> 0) then
begin
adoConn := TADOConnection.Create(nil);
try
adoConn.LoginPrompt := False;
adoConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; '+
'Data Source=' +
'myFile.xls'+
';Extended Properties=Excel 8.0';
adoConn.Open;
//
adoQuery := TADOQuery.Create(nil);
try
adoQuery.Connection := adoConn;
adoQuery.LockType := ltReadOnly;
adoQuery.SQL.Text := 'Select * from [Index$] where (Name=:Name)';
adoQuery.Parameters.ParamByName('Name').DataType := ftString;
adoQuery.Parameters.ParamByName('Name').Value := AName;
adoQuery.Prepared := true;
adoQuery.Open;
if (not adoQuery.FieldByName('Value').IsNull) then
result := adoQuery.FieldByName('Value').Value;
finally
adoQuery.Close;
adoQuery.Free;
end;
finally
adoConn.Close;
adoConn.Free;
end;
end;
end;
Eigentlich soll die Funktion nur innerhalb einer vorhandenen Exceldatei ein Name-Wert-Paar finden und den Wert zurückgeben. Binde ich die Funktion direkt in das Programm (nicht in das Package) ein, funktioniert das ganze auch. Probiere ich es über das Package, bekomme ich die Fehlermeldung " Fehlt!". Nicht wirklich aussagekräftig.
Die Delphi-Version die ich einsetze ist D5EE, SP1 unter Win2000, SP4.
Mir ist klar, dass die Delphi-Version veraltet ist, aber es ist die vom Kunden vrogegebene Version. Hat jemand eine Idee, woher der Fehler kommen könnte?
Danke im Voraus.
Christian Weber
habe ein Problem mit einer TADOQuery-Komponente bei der Benutzung innerhalb eines Package. Hier erstmal der Sourcecode:
function Tta_Excel.getValue(AName,ADefault:string):string;
var
adoConn : TADOConnection;
adoQuery : TADOQuery;
begin
result := ADefault;
if (Length(Trim(AName)) <> 0) then
begin
adoConn := TADOConnection.Create(nil);
try
adoConn.LoginPrompt := False;
adoConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; '+
'Data Source=' +
'myFile.xls'+
';Extended Properties=Excel 8.0';
adoConn.Open;
//
adoQuery := TADOQuery.Create(nil);
try
adoQuery.Connection := adoConn;
adoQuery.LockType := ltReadOnly;
adoQuery.SQL.Text := 'Select * from [Index$] where (Name=:Name)';
adoQuery.Parameters.ParamByName('Name').DataType := ftString;
adoQuery.Parameters.ParamByName('Name').Value := AName;
adoQuery.Prepared := true;
adoQuery.Open;
if (not adoQuery.FieldByName('Value').IsNull) then
result := adoQuery.FieldByName('Value').Value;
finally
adoQuery.Close;
adoQuery.Free;
end;
finally
adoConn.Close;
adoConn.Free;
end;
end;
end;
Eigentlich soll die Funktion nur innerhalb einer vorhandenen Exceldatei ein Name-Wert-Paar finden und den Wert zurückgeben. Binde ich die Funktion direkt in das Programm (nicht in das Package) ein, funktioniert das ganze auch. Probiere ich es über das Package, bekomme ich die Fehlermeldung " Fehlt!". Nicht wirklich aussagekräftig.
Die Delphi-Version die ich einsetze ist D5EE, SP1 unter Win2000, SP4.
Mir ist klar, dass die Delphi-Version veraltet ist, aber es ist die vom Kunden vrogegebene Version. Hat jemand eine Idee, woher der Fehler kommen könnte?
Danke im Voraus.
Christian Weber
Comment