新手向各位高手请教!谁能给我一个最简单的三层的例子?只要实现简单的select功能,然后在客户端显示出来即可,谢谢了!在线等待,急,分 由于公司安排,现在开始要用delphi做三层,可是我一点都不懂哪位高手指点一下,谢谢了贴出来或者发到我的信箱里面都可以 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我已经看了,可惜有些地方不太明白比如如何在客户端取出服务器端data module中的数据?也就是通过data providor的什么属性关联的?还有就是data module是不是必须的啊?还有…… 好多啊我可能问的问题很幼稚,别笑话我哦 服务器://工程文件program emy;uses Forms, Unit1 in 'Unit1.pas' {Form1}, emy_TLB in 'emy_TLB.pas', Unit2 in 'Unit2.pas' {dbserver: TRemoteDataModule} {dbserver: CoClass};{$R *.TLB}{$R *.res}begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;end.//实现部分unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBTables, DB, StdCtrls;type TForm1 = class(TForm) Database1: TDatabase; Query1: TQuery; mytable: TTable; Label1: TLabel; private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}end.unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr, DBClient, emy_TLB, StdVcl, DB, DBTables, Provider;type Tdbserver = class(TRemoteDataModule, Idbserver) DataSetProvider1: TDataSetProvider; private { Private declarations } protected class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override; public { Public declarations } end;implementation{$R *.DFM}class procedure Tdbserver.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, Tdbserver, Class_dbserver, ciMultiInstance, tmApartment);end. 客户端部分:program Project1;uses Forms, Unit1 in 'Unit1.pas' {Form1}, Project1_TLB in 'Project1_TLB.pas', Unit2 in 'Unit2.pas' {my: TRemoteDataModule} {my: CoClass};{$R *.TLB}{$R *.res}begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;end.unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, DBCtrls, DB, DBClient, MConnect, Grids, DBGrids;type TForm1 = class(TForm) DBGrid1: TDBGrid; ClientDataSet1: TClientDataSet; DBNavigator1: TDBNavigator; DataSource1: TDataSource; private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}end.unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr, DBClient, Project1_TLB, StdVcl, DB, MConnect;type Tmy = class(TRemoteDataModule, Imy) DCOMConnection1: TDCOMConnection; private { Private declarations } protected class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override; public { Public declarations } end;implementation{$R *.DFM}class procedure Tmy.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, Tmy, Class_my, ciMultiInstance, tmApartment);end.实现TDBGRID,TDBNavigator功能,其实与你所要实现的功能的原理是一样的!MAILTO:[email protected] type Tdbserver = class(TRemoteDataModule, Idbserver)和TDataModule1 = class(TDataModule)有什么区别,我的怎么是上面的?? C:\Program Files\Borland\Delphi6\Demos\Midas也就是你DELPHI安装目录下的Demos\Midas有很多MIDAS的例子。你可以先研究研究。哪些例子都很简单,但很实用。 报表的相关问题,急啊! 自动产生自编号 在unit中type和var的作用有什么不同? 请问那里有delphi开发的酒店管理系统的源代码。 >>>>>>>>>>>如何得到某一年的第一天和最后一天? 新手报道,散分交朋友 vb版的版主都是煞笔,同意的UP delphi5的SMTP验证 在EDIT控件里怎样才能做到只能输入日期格式的字符串? 有用TAPI开发Application的人请进! xe2中的FireMonkey HD窗体如何做成磁性窗体(D7的代码都没有用了),盼高人给出答案! FastReport基本使用问题
比如如何在客户端取出服务器端data module中的数据?也就是通过data providor的什么属性关联的?还有就是data module是不是必须的啊?还有…… 好多啊
我可能问的问题很幼稚,别笑话我哦
//工程文件
program emy;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
emy_TLB in 'emy_TLB.pas',
Unit2 in 'Unit2.pas' {dbserver: TRemoteDataModule} {dbserver: CoClass};{$R *.TLB}{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
//实现部分
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBTables, DB, StdCtrls;type
TForm1 = class(TForm)
Database1: TDatabase;
Query1: TQuery;
mytable: TTable;
Label1: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}end.
unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, emy_TLB, StdVcl, DB, DBTables, Provider;type
Tdbserver = class(TRemoteDataModule, Idbserver)
DataSetProvider1: TDataSetProvider;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;implementation{$R *.DFM}class procedure Tdbserver.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, Tdbserver,
Class_dbserver, ciMultiInstance, tmApartment);
end.
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Project1_TLB in 'Project1_TLB.pas',
Unit2 in 'Unit2.pas' {my: TRemoteDataModule} {my: CoClass};{$R *.TLB}{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, DB, DBClient, MConnect, Grids, DBGrids;type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
ClientDataSet1: TClientDataSet;
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}end.unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, Project1_TLB, StdVcl, DB, MConnect;type
Tmy = class(TRemoteDataModule, Imy)
DCOMConnection1: TDCOMConnection;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;implementation{$R *.DFM}class procedure Tmy.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, Tmy,
Class_my, ciMultiInstance, tmApartment);
end.实现TDBGRID,TDBNavigator功能,其实与你所要实现的功能的原理是一样的!
MAILTO:[email protected]
Tdbserver = class(TRemoteDataModule, Idbserver)
和
TDataModule1 = class(TDataModule)
有什么区别,我的怎么是上面的??