感谢. 以上这些都按书上说的设置了.代码是DELPHI7自动生成.自己在客户端加了一个button想运行时启动clientdataset.active但是打代码却出错:Unable to invoke Code Completion due to errors in source code.(已经用了uses dm;)就是在客户端调用不了数据模块2里的clientdataset.请问一下datamodule与remotedatamodule自动生成的代码有什么不同.如何在外面操作rdm里的clientdataset对象.
以下基本是D7自动生成:(关键是我不要哪个buttonclick调试没数据). unit dmpas;{$WARN SYMBOL_PLATFORM OFF}interfaceuses Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr, DBClient, clientdpr_TLB, StdVcl, DB, MConnect;type Tdm = class(TRemoteDataModule, Idm) DCOMConnection1: TDCOMConnection; ClientDataSet1: TClientDataSet; private { Private declarations } protected class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override; public { Public declarations } end;implementation{$R *.DFM}class procedure Tdm.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); begin if Register then begin inherited UpdateRegistry(Register, ClassID, ProgID); EnableSocketTransport(ClassID); EnableWebTransport(ClassID); end else begin DisableSocketTransport(ClassID); DisableWebTransport(ClassID); inherited UpdateRegistry(Register, ClassID, ProgID); end; end;initialization TComponentFactory.Create(ComServer, Tdm, Class_dm, ciMultiInstance, tmApartment); end. ******************************************************************* unit client;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB;type TForm1 = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation uses dmpas; {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); begin ClientDataSet1.(就这里错:Unable to invoke Code Completion due to errors in source code) end;end.
1.看ADOConnection是否连接成功
2.数据集是否激活?
要不把你的思路下下,让哥们学习下?
我只是拖一下控件,代码都是自己生成.设计时是好的.但调试不显示数据.调试通过,没有错误提示.就是没有数据.只有窗体及几个显示控件.
简单的:
1.服务器端:tfrom+DBTable+DataSource+DataGrid
2.数据模块1:datasetprovider
数据模块2:dcomconnection+clientdataset
3.客户端:tfrom+DataSource+DataGrid
DCOM 连接,数据集应该打开了.不然设计时就没有显示.
Dcomconnection有没有绑定datasetprovider ?
以上这些都按书上说的设置了.代码是DELPHI7自动生成.自己在客户端加了一个button想运行时启动clientdataset.active但是打代码却出错:Unable to invoke Code Completion due to errors in source code.(已经用了uses dm;)就是在客户端调用不了数据模块2里的clientdataset.请问一下datamodule与remotedatamodule自动生成的代码有什么不同.如何在外面操作rdm里的clientdataset对象.
unit dmpas;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, clientdpr_TLB, StdVcl, DB, MConnect;type
Tdm = class(TRemoteDataModule, Idm)
DCOMConnection1: TDCOMConnection;
ClientDataSet1: TClientDataSet;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;implementation{$R *.DFM}class procedure Tdm.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
if Register then
begin
inherited UpdateRegistry(Register, ClassID, ProgID);
EnableSocketTransport(ClassID);
EnableWebTransport(ClassID);
end else
begin
DisableSocketTransport(ClassID);
DisableWebTransport(ClassID);
inherited UpdateRegistry(Register, ClassID, ProgID);
end;
end;initialization
TComponentFactory.Create(ComServer, Tdm,
Class_dm, ciMultiInstance, tmApartment);
end.
*******************************************************************
unit client;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB;type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses dmpas;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.(就这里错:Unable to invoke Code Completion due to errors in source code)
end;end.