DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: pesamo
今日帖子: 11
在线用户: 8
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 gaoxiao2004 (天下有雪) ★☆☆☆☆ -
盒子活跃会员
2004/4/3 21:43:31
标题:
为什么不能用呢? 浏览:959
加入我的收藏
楼主: 用dbexperss写了点东东,不过还是不能用,贴出来,大家给点建议吧!
求大伙了!编译成功,但是好像没用啊!
————————————————dm模块——————————
unit DMpkU;

interface

uses
  SysUtils, Classes, DBXpress, DB, SqlExpr, DMIntrpk;

type
  Tdmpkg = class(TDataModule)
    SQLCon: TSQLConnection;
  private
  protected
    function GetCon: TSQLConnection;
  public
    { Public declarations }
  end;

var
  dmpkg: Tdmpkg;

implementation

{$R *.dfm}
function Tdmpkg.GetCon: TSQLConnection;
begin
  Result := SQLCon;
end;
initialization
  RegisterClass(Tdmpkg);
finalization
  UnRegisterClass(Tdmpkg);
end.
——————————————dm的引用——————————
unit DMIntrpk;

interface

uses
  SqlExpr,DBXpress;

type
  IDMpk = Interface
    ['{AA5658B0-9D55-48A2-A719-37A1D638FCD5}']
    function GetCon: TSQLConnection;
  end;
  
implementation

end.
————————————————mainform——————————
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DMIntrpk, FMTBcd, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids,
  DB, SqlExpr, Provider, DBClient, DBXpress, SimpleDS;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    SQLDataSet1: TSQLDataSet;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    FpkHandle: THandle;
    FpkDM: IDMpk;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FpkHandle := LoadPackage('1.bpl');
  if FpkHandle = 0 then
    ShowMessage('Can not load package dbmodu.bpl');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  SQLDataSet1.SQLConnection := nil;
  FpkDM := nil;
  if FpkHandle <> 0 then
    UnloadPackage(FpkHandle);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
    AClass: TComponentClass;
begin
  if FpkHandle <> 0 then
  begin
    AClass := TComponentClass(GetClass('TDMpk'));
    if AClass <> nil then
    begin
      FpkDM := AClass.Create(nil) as IDMPk;
      SQLDataSet1.SQLConnection := FpkDM.GetCon;
      SQLDataSet1.Active:=true;
      ClientDataSet1.Active:=true;
    end;
  end;
end;
end.
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS