Hallo Herr Kosch,
habe ein kleines Problem mit meinem DCOM-Server. Eine Access Datentabelle heißt 'Current Status' (mit Leerzeichen!!) Diese kann und will ich nicht ändern da Sie aus einem Fremdprogramm stammt. Leider kann ich keine Select Anweisung mit diesem geteiltem Tabellennamen generieren ohne Fehlermeldung. Es hat funktioniert mit den ADO-Komponenten und der ADOTable Komponenete, wenn ich den Tabellennamen auswähle geht es auch mit diesem geteilten Namen. Da der DCOM-Server aber ohne Komponeneten arbeiten soll hätte ich gerne mal Ihren Rat. Die Sache mit einem _Command Objekt und cmdTable habe ich probiert, stecke aber schon wieder fest. Welche Parameter für Execute oder wie auf der Clientseite ein Command Result zu handlen ist ???
<PRE>function TGrowSmartThinObj.CurrentStatusCD: _Command;
var
aConnection : _Connection;
aCommand : _Command;
begin
try
aConnection := CoConnection.Create as _Connection;
aConnection.CursorLocation := adUseServer;//adUseClient;
aConnection.Open(FConnStr, '', '', adOpenForwardOnly);
try
aCommand := CoCommand.Create as _Command;
try
aCommand.CommandType:=adCmdTable;
aCommand.CommandText:='Current Status';
///???????????????????????????????????????????????
aCommand.Execute(Emptyparam,EmptyParam,EmtyParam);
Result := aCommand;
aCommand._Set_ActiveConnection(nil);
finally
aCommand := nil;
end;
finally
aConnection.Close;
end;
SetComplete;
except
SetAbort;
raise
end;
end;</PRE>
<B> Client:</B>
<PRE>
var aRSCurrentStatus: ADOInt._Command;
begin
if CheckBoxConnect.Checked then
begin
FSrv:=CoGrowSmartThinObj.CreateRemote(vIP);
StatusBar1.Panels[0].Text:='Verbunden mit '+FSrv.ShowConnection;
DM1.ADO_Pivot.Active:=false;
aRSPivot := ADOInt._RecordSet(FSrv.PivotRS);
with DM1.ADO_Pivot do
begin
RecordSet := aRSPivot;
Active := True;
end;
//?????????????????????????????
DM1.ADOCurrentStatus.Active:=false;
aRSCurrentStatus := ADOInt._Command(FSrv.CurrentStatusCD);
with DM1.ADOCurrentStatus do
begin
TableName := aRSCurrentStatus.CommandText;
Active := True;
end;
//?????????????????????
</PRE>
Besten Dank im Voraus
habe ein kleines Problem mit meinem DCOM-Server. Eine Access Datentabelle heißt 'Current Status' (mit Leerzeichen!!) Diese kann und will ich nicht ändern da Sie aus einem Fremdprogramm stammt. Leider kann ich keine Select Anweisung mit diesem geteiltem Tabellennamen generieren ohne Fehlermeldung. Es hat funktioniert mit den ADO-Komponenten und der ADOTable Komponenete, wenn ich den Tabellennamen auswähle geht es auch mit diesem geteilten Namen. Da der DCOM-Server aber ohne Komponeneten arbeiten soll hätte ich gerne mal Ihren Rat. Die Sache mit einem _Command Objekt und cmdTable habe ich probiert, stecke aber schon wieder fest. Welche Parameter für Execute oder wie auf der Clientseite ein Command Result zu handlen ist ???
<PRE>function TGrowSmartThinObj.CurrentStatusCD: _Command;
var
aConnection : _Connection;
aCommand : _Command;
begin
try
aConnection := CoConnection.Create as _Connection;
aConnection.CursorLocation := adUseServer;//adUseClient;
aConnection.Open(FConnStr, '', '', adOpenForwardOnly);
try
aCommand := CoCommand.Create as _Command;
try
aCommand.CommandType:=adCmdTable;
aCommand.CommandText:='Current Status';
///???????????????????????????????????????????????
aCommand.Execute(Emptyparam,EmptyParam,EmtyParam);
Result := aCommand;
aCommand._Set_ActiveConnection(nil);
finally
aCommand := nil;
end;
finally
aConnection.Close;
end;
SetComplete;
except
SetAbort;
raise
end;
end;</PRE>
<B> Client:</B>
<PRE>
var aRSCurrentStatus: ADOInt._Command;
begin
if CheckBoxConnect.Checked then
begin
FSrv:=CoGrowSmartThinObj.CreateRemote(vIP);
StatusBar1.Panels[0].Text:='Verbunden mit '+FSrv.ShowConnection;
DM1.ADO_Pivot.Active:=false;
aRSPivot := ADOInt._RecordSet(FSrv.PivotRS);
with DM1.ADO_Pivot do
begin
RecordSet := aRSPivot;
Active := True;
end;
//?????????????????????????????
DM1.ADOCurrentStatus.Active:=false;
aRSCurrentStatus := ADOInt._Command(FSrv.CurrentStatusCD);
with DM1.ADOCurrentStatus do
begin
TableName := aRSCurrentStatus.CommandText;
Active := True;
end;
//?????????????????????
</PRE>
Besten Dank im Voraus
Comment