由于公司安排,现在开始要用delphi做三层,可是我一点都不懂
哪位高手指点一下,谢谢了
贴出来或者发到我的信箱里面都可以
哪位高手指点一下,谢谢了
贴出来或者发到我的信箱里面都可以
解决方案 »
- 调用存储过程时返回空值会报错 commandtext does not return a result set
- dbexpress 怎样连接sqlserver2000
- 怎样控制DBGRID的列宽?
- 菜鸟问题,请问这样该怎么做??
- delphi的类有没有构造函数的?我想在里面初始化一些成员变量
- 高手请进!!
- DELPHI中出现了无法为更新定位行,一些值可能已在最后一次读取后已更改"S的警告
- 可不可以,直接编写发E-MAIL...
- 各位老师我有个数据库问题,帮助我。谢谢了!
- 三层,TProvider中设pofetchBLOBOnDemand为T,客户端ClientDataSet(与多表查询的TQuery相连)无法获得数据
- 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)
有什么区别,我的怎么是上面的??