COM+三层结构构造问题(急!小生所有的分都用在这里了!!!)(130分)

  • 主题发起人 主题发起人 xiaolinj79
  • 开始时间 开始时间
X

xiaolinj79

Unregistered / Unconfirmed
GUEST, unregistred user!
手头有一个项目,采购管理系统,需要用COM+
但是由于小生以前都是c/s数据库开发,对次了解甚少
项目要求是这样的数据库sql2000server,中间服务层COM+,客户端ASP浏览器
希望大虾指导一下COM+的构造思路,例如服务程序结构,远程数据库调用方法
datamodule能否使用,使用何种datamodule以及服务器的配置……
最好有一个例子
问题太多了,实在不行我只好申请一个新的帐号来给分,还有200:(
越快越好啊!!!
 
找一本李维的《ADO/MTS/COM+》看看吧!有帮助的
 
请问你知道哪里有电子书籍下载吗?好象这本书的电子书籍都是前4章的
谁知道全的下载路径?第一个有效的分就全部给他
 
其实前三章就可以解决问题了
 
以前写的一个参考一下
unit SynthQryTrxDMObj;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient,
MtsRdm, Mtx, SynthQryProv_TLB, Provider, DB, ADODB;
type
TSynthQryTrxDM = class(TMtsDataModule, ISynthQryTrxDM)
ADOC: TADOConnection;
SynthQuery: TADOQuery;
dspSynthQuery: TDataSetProvider;
RevenueOfQuery: TADOTable;
dspRevenueOfQuery: TDataSetProvider;
procedure MtsDataModuleCreate(Sender: TObject);
procedure dspSynthQueryBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean;
const ClassID, ProgID: string);
override;
public
{ Public declarations }
end;

implementation
uses reg, Variants;
{$R *.DFM}
class procedure TSynthQryTrxDM.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;

procedure TSynthQryTrxDM.MtsDataModuleCreate(Sender: TObject);
begin
ADOC.ConnectionString := reg.GetConnectionString;
end;

procedure TSynthQryTrxDM.dspSynthQueryBeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
const EmptySQL = 'SELECT NULL';
begin
SynthQuery.Active := False;
SynthQuery.SQL.Clear;
if VarIsArray(OwnerData) then
begin
if OwnerData[0] = GUIDToString(LIBID_SynthQryProv) then
try
SynthQuery.SQL.Add(OwnerData[1]);
except
SynthQuery.SQL.Add(EmptySQL);
end
else
SynthQuery.SQL.Add(EmptySQL);
end
else
SynthQuery.SQL.Add(EmptySQL);
end;

initialization
TComponentFactory.Create(ComServer, TSynthQryTrxDM,
Class_SynthQryTrxDM, ciMultiInstance, tmApartment);
end.
 
谢谢,我去试试先:)
 
虽然答案不怎么理想,但是,问题太久了……
谢谢antic_ant
 
后退
顶部