三层数据库需要的不只是midas.dll,还需要好几个dll的。

解决方案 »

  1.   

    midas的位置是否正确?
    ocx本身是否已经在客户端注册呢
      

  2.   

    to netlib:需要那些dll?请赐教,分不够可以商量,我急啊!!!
      

  3.   

    我想不是dll的问题,应是你定义的接口问题。打开中间服务器工程,执行view->type library,打开 .tlb 文件。
    单击Ltes,再按toolsbutton中的new method,新建一function,命名为
    change。在parameters中如果你在return type中选了返回值,它就会变成function而不是procedure了。单击parameters->add->name为str,type为WideString,先save,
    再写代码。(此处可定义多个参数)具体的function的代码你自已看吧,最后save all。 function Ttest.change(const str: WideString):string;
    begin
     ADOStoredProc1..........
     result :=.....
    end;则前台调用为:procedure TForm1.Button3Click(Sender: TObject);
    var
      str : string;
    begin
      str :=SocketConnection1.AppServer.change('321');
    end;
      

  4.   

    关于客户断和中间件的程序我相信应该没问题,最近我公司也在用delphi做三层,如下
    客户断 socketconnect+clientdataset
    中间件 adoconnection+adodataset+datasetprovider,我们用的是  tansactiondatamodule模块
    关于组件的属性问题不再叙述
    主要是解释一下发布的方法问题:
    我用的是activefrom 的方法
    如下:
    1.file->new->other->Activex->ActiveForm
    2.在activeform加入有关的Form,
    3.在create事件显示form
    procedure TActiveFormX.ActiveFormCreate(Sender: TObject);
    begin
      Frm_DdsDyjcjl:=tFrm_DdsDyjcjl.create(self);
      Frm_DdsDyjcjl.parent:=self;
      Frm_DdsDyjcjl.BorderStyle:=bsnone;
      Frm_DdsDyjcjl.Align:=alClient;
      Frm_DdsDyjcjl.show;
    end;
    其中Frm_DdsDyjcjl是你要显示的form,
    4.在destory 事件释放Frm_DdsDyjcjl.free;5.发布过程如下:
    project->options->packages->runtimepackegs勾选Builte with runtime packegs
    project->web deployment options->project
    Target dir :\\mddb1\lfsc\APP_OCX\
    Target Url: //mddb1/lfsc/APP_OCX/
    htm dir :\\mddb1\lfsc\
    勾选general的所有复选框
    注释:mddb是服务器的机器名
    lfsc为一个虚拟目录
    project->web deployment options->packege
    选择每一个项目,让后在TargetUrl输入如下内容
    //mddb1/lfsc/shaaredpkg/ 其中shaaredpkg为lfsc目录下的一个文件家project->web deployment options->addtional files
    单击add按钮,选择midas.dll 通常在winnt或者system下
    在下面的TargUrl树如下
    //mddb1/lfsc/shaaredpkg/
    6.file->project->web deploy 即刻生成*.htm文件
    可以在ie下用!
      

  5.   

    to sjzmdslxj(求知) 非常感谢你的帮助,
    我是这样调用form的,请看看对不对
    这是tform6的一个方法
    procedure Showxlyb;
    begin
    try
      with Tform6.Create(nil) do
          Show;
    except on exception do begin end;end;
    end;
    在mainform里直接showxlyb;另外我按你的方法做了一遍,可是还是不行,而且
    第一次运行时安装了所有的包和控件,在编译后,客户端就不自动安装了,另外我很迷惑,为什么安装了delphi的机器执行正常呢?
    谢谢你花时间帮忙