请大侠帮忙,
    我做的一个关于数据库的客户端小程序,用的是Embarcadero RAD Studio2010 开发,是关于WebService的,服务端数据库是DB2,经测试只能在安装过Embarcadero RAD Studio2010的计算机能使用,并且非常正常看,但是不能再别的计算机使用,请问各大侠,客户端到底需要哪些支持文件:如DLL、BPL等。

解决方案 »

  1.   

    1.编译程序是否选用了静态编译
    2.你用了什么数据引擎,不同的数据引擎需要不同的发布方式(ODBC/ADO不用发布)
    3.你的客户机上要安装DB2的客户端
      

  2.   

    应该和数据库有关,如果没用。net环境开发,应该和2010无关
      

  3.   

    谢谢大家,我把源代码发给你们,请分析一下。// ************************************************************************ //
    // The types declared in this file were generated from data read from the
    // WSDL File described below:
    // WSDL     : D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml
    //  >Import : D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml>0
    //  >Import : D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml>1
    // Version  : 1.0
    // (2010-02-25 9:54:59 - - $Rev: 24171 $)
    // ************************************************************************ //unit IEPCS_IIS_WebSCoorSpplyIsapi1;interfaceuses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;type  // ************************************************************************ //
      // The following types, referred to in the WSDL document are not being represented
      // in this file. They are either aliases[@] of other types represented or were referred
      // to but never[!] declared in the document. The types from the latter category
      // typically map to predefined/known XML or Embarcadero types; however, they could also 
      // indicate incorrect WSDL documents that failed to declare or import a schema type.
      // ************************************************************************ //
      // !:string          - "http://www.w3.org/2001/XMLSchema"[Gbl]
      // !:double          - "http://www.w3.org/2001/XMLSchema"[Gbl]
      // !:TDoubleDynArray - "http://www.borland.com/namespaces/Types"[GblCplx]
      // !:int             - "http://www.w3.org/2001/XMLSchema"[]  TSampleStruct        = class;                 { "urn:EPCS_IIS_WebSCoorSpplyIsapi"[GblCplx] }  {$SCOPEDENUMS ON}
      { "urn:EPCS_IIS_WebSCoorSpplyIsapi"[GblSmpl] }
      SampleEnum = (etNone, etAFew, etSome, etALot);  {$SCOPEDENUMS OFF}  // ************************************************************************ //
      // XML       : TSampleStruct, global, <complexType>
      // Namespace : urn:EPCS_IIS_WebSCoorSpplyIsapi
      // ************************************************************************ //
      TSampleStruct = class(TRemotable)
      private
        FLastName: string;
        FFirstName: string;
        FSalary: Double;
      published
        property LastName:  string  read FLastName write FLastName;
        property FirstName: string  read FFirstName write FFirstName;
        property Salary:    Double  read FSalary write FSalary;
      end;
      // ************************************************************************ //
      // Namespace : urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi
      // soapAction: urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi#%operationName%
      // transport : http://schemas.xmlsoap.org/soap/http
      // style     : rpc
      // binding   : IEPCS_IIS_WebSCoorSpplyIsapibinding
      // service   : IEPCS_IIS_WebSCoorSpplyIsapiservice
      // port      : IEPCS_IIS_WebSCoorSpplyIsapiPort
      // URL       : http://192.168.1.9:2002/WebServicesSpply/EPCS_IIS_WebSCoorSpply.dll/soap/IEPCS_IIS_WebSCoorSpplyIsapi
      // ************************************************************************ //
      IEPCS_IIS_WebSCoorSpplyIsapi = interface(IInvokable)
      ['{719EE96A-92B7-C8C2-BE22-AA38D4C68C0B}']
        function  SpplyVanDataBySQL(const sSQL: string): string; stdcall;
        function  SpplyVanDataBySQLs(const sSQLs: string): string; stdcall;
        function  SpplyEpcDataBySQL(const sSQL: string): string; stdcall;
        function  ApplyVanDataBySQL(const sSQL: string; const sDelta: string): Integer; stdcall;
        function  ApplyVanDataBySQLupKeyChanged(const sSQL: string; const sDelta: string; const sKey: string): Integer; stdcall;
        function  ApplyEpcDataBySQLupKeyChanged(const sSQL: string; const sDelta: string; const sKey: string): Integer; stdcall;
        function  echoEnum(const eValue: SampleEnum): SampleEnum; stdcall;
        function  echoDoubleArray(const daValue: TDoubleDynArray): TDoubleDynArray; stdcall;
        function  echoStruct(const pEmployee: TSampleStruct): TSampleStruct; stdcall;
        function  echoDouble(const dValue: Double): Double; stdcall;
      end;function GetIEPCS_IIS_WebSCoorSpplyIsapi(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IEPCS_IIS_WebSCoorSpplyIsapi;
    implementation
      uses SysUtils;function GetIEPCS_IIS_WebSCoorSpplyIsapi(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IEPCS_IIS_WebSCoorSpplyIsapi;
    const
      defWSDL = 'D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml';
      defURL  = 'http://192.168.1.9:2002/WebServicesSpply/EPCS_IIS_WebSCoorSpply.dll/soap/IEPCS_IIS_WebSCoorSpplyIsapi';
      defSvc  = 'IEPCS_IIS_WebSCoorSpplyIsapiservice';
      defPrt  = 'IEPCS_IIS_WebSCoorSpplyIsapiPort';
    var
      RIO: THTTPRIO;
    begin
      Result := nil;
      if (Addr = '') then
      begin
        if UseWSDL then
          Addr := defWSDL
        else
          Addr := defURL;
      end;
      if HTTPRIO = nil then
        RIO := THTTPRIO.Create(nil)
      else
        RIO := HTTPRIO;
      try
        Result := (RIO as IEPCS_IIS_WebSCoorSpplyIsapi);
        if UseWSDL then
        begin
          RIO.WSDLLocation := Addr;
          RIO.Service := defSvc;
          RIO.Port := defPrt;
        end else
          RIO.URL := Addr;
      finally
        if (Result = nil) and (HTTPRIO = nil) then
          RIO.Free;
      end;
    end;
    initialization
      InvRegistry.RegisterInterface(TypeInfo(IEPCS_IIS_WebSCoorSpplyIsapi), 'urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi', '');
      InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IEPCS_IIS_WebSCoorSpplyIsapi), 'urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi#%operationName%');
      RemClassRegistry.RegisterXSClass(TSampleStruct, 'urn:EPCS_IIS_WebSCoorSpplyIsapi', 'TSampleStruct');
      RemClassRegistry.RegisterXSInfo(TypeInfo(SampleEnum), 'urn:EPCS_IIS_WebSCoorSpplyIsapi', 'SampleEnum');end.
      

  4.   

    谢谢大家,我把源代码发给你们,请分析一下。// ************************************************************************ //
    // The types declared in this file were generated from data read from the
    // WSDL File described below:
    // WSDL     : D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml
    //  >Import : D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml>0
    //  >Import : D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml>1
    // Version  : 1.0
    // (2010-02-25 9:54:59 - - $Rev: 24171 $)
    // ************************************************************************ //unit IEPCS_IIS_WebSCoorSpplyIsapi1;interfaceuses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;type  // ************************************************************************ //
      // The following types, referred to in the WSDL document are not being represented
      // in this file. They are either aliases[@] of other types represented or were referred
      // to but never[!] declared in the document. The types from the latter category
      // typically map to predefined/known XML or Embarcadero types; however, they could also 
      // indicate incorrect WSDL documents that failed to declare or import a schema type.
      // ************************************************************************ //
      // !:string          - "http://www.w3.org/2001/XMLSchema"[Gbl]
      // !:double          - "http://www.w3.org/2001/XMLSchema"[Gbl]
      // !:TDoubleDynArray - "http://www.borland.com/namespaces/Types"[GblCplx]
      // !:int             - "http://www.w3.org/2001/XMLSchema"[]  TSampleStruct        = class;                 { "urn:EPCS_IIS_WebSCoorSpplyIsapi"[GblCplx] }  {$SCOPEDENUMS ON}
      { "urn:EPCS_IIS_WebSCoorSpplyIsapi"[GblSmpl] }
      SampleEnum = (etNone, etAFew, etSome, etALot);  {$SCOPEDENUMS OFF}  // ************************************************************************ //
      // XML       : TSampleStruct, global, <complexType>
      // Namespace : urn:EPCS_IIS_WebSCoorSpplyIsapi
      // ************************************************************************ //
      TSampleStruct = class(TRemotable)
      private
        FLastName: string;
        FFirstName: string;
        FSalary: Double;
      published
        property LastName:  string  read FLastName write FLastName;
        property FirstName: string  read FFirstName write FFirstName;
        property Salary:    Double  read FSalary write FSalary;
      end;
      // ************************************************************************ //
      // Namespace : urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi
      // soapAction: urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi#%operationName%
      // transport : http://schemas.xmlsoap.org/soap/http
      // style     : rpc
      // binding   : IEPCS_IIS_WebSCoorSpplyIsapibinding
      // service   : IEPCS_IIS_WebSCoorSpplyIsapiservice
      // port      : IEPCS_IIS_WebSCoorSpplyIsapiPort
      // URL       : http://192.168.1.9:2002/WebServicesSpply/EPCS_IIS_WebSCoorSpply.dll/soap/IEPCS_IIS_WebSCoorSpplyIsapi
      // ************************************************************************ //
      IEPCS_IIS_WebSCoorSpplyIsapi = interface(IInvokable)
      ['{719EE96A-92B7-C8C2-BE22-AA38D4C68C0B}']
        function  SpplyVanDataBySQL(const sSQL: string): string; stdcall;
        function  SpplyVanDataBySQLs(const sSQLs: string): string; stdcall;
        function  SpplyEpcDataBySQL(const sSQL: string): string; stdcall;
        function  ApplyVanDataBySQL(const sSQL: string; const sDelta: string): Integer; stdcall;
        function  ApplyVanDataBySQLupKeyChanged(const sSQL: string; const sDelta: string; const sKey: string): Integer; stdcall;
        function  ApplyEpcDataBySQLupKeyChanged(const sSQL: string; const sDelta: string; const sKey: string): Integer; stdcall;
        function  echoEnum(const eValue: SampleEnum): SampleEnum; stdcall;
        function  echoDoubleArray(const daValue: TDoubleDynArray): TDoubleDynArray; stdcall;
        function  echoStruct(const pEmployee: TSampleStruct): TSampleStruct; stdcall;
        function  echoDouble(const dValue: Double): Double; stdcall;
      end;function GetIEPCS_IIS_WebSCoorSpplyIsapi(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IEPCS_IIS_WebSCoorSpplyIsapi;
    implementation
      uses SysUtils;function GetIEPCS_IIS_WebSCoorSpplyIsapi(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IEPCS_IIS_WebSCoorSpplyIsapi;
    const
      defWSDL = 'D:\EPCS_ARCH\IIS\WebService\Web.ISAPI\WSDL\IEPCS_IIS_WebSCoorSpplyIsapi.xml';
      defURL  = 'http://192.168.1.9:2002/WebServicesSpply/EPCS_IIS_WebSCoorSpply.dll/soap/IEPCS_IIS_WebSCoorSpplyIsapi';
      defSvc  = 'IEPCS_IIS_WebSCoorSpplyIsapiservice';
      defPrt  = 'IEPCS_IIS_WebSCoorSpplyIsapiPort';
    var
      RIO: THTTPRIO;
    begin
      Result := nil;
      if (Addr = '') then
      begin
        if UseWSDL then
          Addr := defWSDL
        else
          Addr := defURL;
      end;
      if HTTPRIO = nil then
        RIO := THTTPRIO.Create(nil)
      else
        RIO := HTTPRIO;
      try
        Result := (RIO as IEPCS_IIS_WebSCoorSpplyIsapi);
        if UseWSDL then
        begin
          RIO.WSDLLocation := Addr;
          RIO.Service := defSvc;
          RIO.Port := defPrt;
        end else
          RIO.URL := Addr;
      finally
        if (Result = nil) and (HTTPRIO = nil) then
          RIO.Free;
      end;
    end;
    initialization
      InvRegistry.RegisterInterface(TypeInfo(IEPCS_IIS_WebSCoorSpplyIsapi), 'urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi', '');
      InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IEPCS_IIS_WebSCoorSpplyIsapi), 'urn:EPCS_IIS_WebSCoorSpplyIsapi-IEPCS_IIS_WebSCoorSpplyIsapi#%operationName%');
      RemClassRegistry.RegisterXSClass(TSampleStruct, 'urn:EPCS_IIS_WebSCoorSpplyIsapi', 'TSampleStruct');
      RemClassRegistry.RegisterXSInfo(TypeInfo(SampleEnum), 'urn:EPCS_IIS_WebSCoorSpplyIsapi', 'SampleEnum');end.
      

  5.   

    以下小程序调用
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, InvokeRegistry, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinCaramel,
      dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinFoggy, dxSkinGlassOceans,
      dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
      dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue,
      dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
      dxSkinPumpkin, dxSkinSeven, dxSkinSharp, dxSkinSilver, dxSkinSpringTime,
      dxSkinStardust, dxSkinSummer2008, dxSkinsDefaultPainters, dxSkinValentine,
      dxSkinXmas2008Blue, cxGraphics, cxControls, cxLookAndFeels,
      cxLookAndFeelPainters, cxStyles, dxSkinscxPCPainter, cxCustomData, cxFilter,
      cxData, cxDataStorage, cxEdit, DB, cxDBData, cxContainer, cxDropDownEdit,
      cxTextEdit, cxMaskEdit, cxCalendar, StdCtrls, cxPC, cxGridLevel, cxClasses,
      cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
      cxGrid, cxNavigator, dxSkinsForm, DBClient, Rio, SOAPHTTPClient,IEPCS_IIS_WebSCoorSpplyIsapi1,Comobj;type
      TForm1 = class(TForm)
        SpplyHTTPRIO: THTTPRIO;
        ClientDataSet1: TClientDataSet;
        DataSource1: TDataSource;
        dxSkinController1: TdxSkinController;
        cxPageControl1: TcxPageControl;
        cxTabSheet1: TcxTabSheet;
        Label1: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        Label10: TLabel;
        Edit3: TEdit;
        Edit1: TEdit;
        Button1: TButton;
        Button3: TButton;
        Edit10: TEdit;
        Edit4: TEdit;
        Button10: TButton;
        Button4: TButton;
        Button18: TButton;
        cxTabSheet2: TcxTabSheet;
        Label7: TLabel;
        Edit7: TEdit;
        Button8: TButton;
        Button2: TButton;
        Button5: TButton;
        cxTabSheet3: TcxTabSheet;
        Label14: TLabel;
        Label33: TLabel;
        Label34: TLabel;
        Label16: TLabel;
        Edit14: TEdit;
        Edit16: TEdit;
        Button20: TButton;
        Button54: TButton;
        Button19: TButton;
        cxDateEdit2: TcxDateEdit;
        cxDateEdit1: TcxDateEdit;
        Button6: TButton;
        Button7: TButton;
        Button9: TButton;
        cxTabSheet4: TcxTabSheet;
        Label8: TLabel;
        Label9: TLabel;
        Label2: TLabel;
        Edit8: TEdit;
        Button11: TButton;
        Edit9: TEdit;
        Button12: TButton;
        Button16: TButton;
        Edit2: TEdit;
        Button13: TButton;
        cxTabSheet5: TcxTabSheet;
        Label17: TLabel;
        Label18: TLabel;
        Edit17: TEdit;
        Button21: TButton;
        Edit18: TEdit;
        Button23: TButton;
        Button22: TButton;
        Button14: TButton;
        cxTabSheet6: TcxTabSheet;
        Label19: TLabel;
        Label23: TLabel;
        Label20: TLabel;
        Label24: TLabel;
        Edit23: TEdit;
        Edit19: TEdit;
        Button24: TButton;
        Edit20: TEdit;
        Button31: TButton;
        Button32: TButton;
        Button27: TButton;
        Button15: TButton;
        Button17: TButton;
        Button25: TButton;
        Button26: TButton;
        cxDateEdit3: TcxDateEdit;
        cxTabSheet7: TcxTabSheet;
        Label5: TLabel;
        Label6: TLabel;
        Label11: TLabel;
        Edit5: TEdit;
        Button28: TButton;
        Button29: TButton;
        Button30: TButton;
        Button33: TButton;
        Edit6: TEdit;
        cxDateEdit4: TcxDateEdit;
        Button34: TButton;
        Button35: TButton;
        cxTabSheet8: TcxTabSheet;
        Label35: TLabel;
        Edit35: TEdit;
        Button58: TButton;
        Button64: TButton;
        cxTabSheet9: TcxTabSheet;
        Label12: TLabel;
        Label13: TLabel;
        Label15: TLabel;
        Label21: TLabel;
        Label22: TLabel;
        Label26: TLabel;
        Label25: TLabel;
        Label27: TLabel;
        Label31: TLabel;
        cxDateEdit5: TcxDateEdit;
        cxDateEdit6: TcxDateEdit;
        Edit11: TEdit;
        Button37: TButton;
        Edit12: TEdit;
        Edit13: TEdit;
        Button36: TButton;
        cxComboBox1: TcxComboBox;
        Edit15: TEdit;
        cxComboBox2: TcxComboBox;
        cxTabSheet10: TcxTabSheet;
        Label28: TLabel;
        Label29: TLabel;
        Label30: TLabel;
        Label32: TLabel;
        cxDateEdit7: TcxDateEdit;
        cxDateEdit8: TcxDateEdit;
        Edit21: TEdit;
        Button38: TButton;
        Button39: TButton;
        cxNavigator1: TcxNavigator;
        cxGrid1DBTableView1: TcxGridDBTableView;
        cxGrid1Level1: TcxGridLevel;
        cxGrid1: TcxGrid;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      SpplyProxy:IEPCS_IIS_WebSCoorSpplyIsapi;
      procedure BGDK(cxGridDBTableView:TcxGridDBTableView);
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.BGDK(cxGridDBTableView:TcxGridDBTableView);
    var j,k:integer;
    begin
     if cxGridDBTableView.ColumnCount<>ClientDataSet1.FieldCount then
    begin
    for j:=0 to cxGridDBTableView.ColumnCount-1 do
    begin
    cxGridDBTableView.Columns[0].Free;
          next;
    end;
    end;
     if cxGridDBTableView.ColumnCount<1 then
    begin for j:=0  to ClientDataSet1.FieldCount-1 do
    begin
    cxGridDBTableView.CreateColumn;
    cxGridDBTableView.Columns[j].Caption:=ClientDataSet1.Fields.Fields[j].FieldName;
    cxGridDBTableView.Columns[j].DataBinding.FieldName:=ClientDataSet1.Fields.Fields[j].FieldName;
        next;
    end;
    end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    // ClientDataSet1.XMLData:=SpplyProxy.SpplyVanDataBySQL('select * from MTS_ITEM  where ITEMID like '''+ Edit1.Text+'%''') ;
    // BGDK(cxGrid1DBTableView1);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    Application.Initialize;
    SpplyProxy:=GetIEPCS_IIS_WebSCoorSpplyIsapi;try
    //OleCheck( SpplyHTTPRIO.QueryInterface(SpplyProxy));
    //  SpplyProxy:=GetIEPCS_IIS_WebSCoorSpplyIsapi(false, 'http://192.168.1.9:2002/WebServicesSpply/EPCS_IIS_WebSCoorSpply.dll/soap/IEPCS_IIS_WebSCoorSpplyIsapi');
    ClientDataSet1.XMLData:=SpplyProxy.SpplyVanDataBySQL('Select * From AAA') ;
        if  ClientDataSet1.Active=false then
            begin
           SpplyProxy:=GetIEPCS_IIS_WebSCoorSpplyIsapi(false, 'http://192.168.1.9:2002/WebServicesSpply/EPCS_IIS_WebSCoorSpply.dll/soap/IEPCS_IIS_WebSCoorSpplyIsapi');
            ClientDataSet1.XMLData:=SpplyProxy.SpplyVanDataBySQL('Select * From AAA') ;
            end;
    finally
    if  ClientDataSet1.Active=false then
    ShowMessage('数据库连接不成功! ');
        end;
    end;end.
      

  6.   

    1、 .net frame  回:安装了也不管用,1.编译程序是否选用了静态编译 
    2.你用了什么数据引擎,不同的数据引擎需要不同的发布方式(ODBC/ADO不用发布) 
    3.你的客户机上要安装DB2的客户端 回:不需要db2客户端,也不需要数据引擎。数据库那边是没问题的。
      

  7.   

    不需要数据引擎?那你怎么跟数据库相联?
    看了一下你的程序,不知你的SpplyProxy是什么控件,另外,你用了大量的第三方控件(cx开头的),但估计这个不是主要原因,主要还是数据引擎的问题,db2我用的很少,但一般情况下,BCB缺省是没有直接支持DB2的,它还是应该有db2客户端支持的
      

  8.   

    第一段代码就是数据库WebService的接口,通过WebService的接口和数据库连接。SpplyProxy就是那个接口定义,用来调用IEPCS_IIS_WebSCoorSpplyIsapi 
    这个接口是本公司外委一个软件公司开发的大型软件做的接口,他们的软件都是通过这个接口存取数据。只是用C++Builder开发,不过程序开发的不怎么地,我想自己利用这个端口,开发我们自己的程序,在原来的程序上作补充。
      

  9.   

    搞忘了做一些补充,他们的软件只是把一堆C++Builder的Dll和BPL拷贝到SYStem32目录下,还有midas.dll等等
      

  10.   

    经测试只能在安装过Embarcadero RAD Studio2010的计算机能正常使用,在别的计算机是数据库没有打开,提示“Mismatch in datapacket”
      

  11.   


    少什么.dll,就拷什么dll进去。反正就根据提示一步步来,
      

  12.   

    NND,我把SYSTEM32里所有文件拷贝过去,采取撒大网的方法,果然有所进展,现在提示:“无法定位程序输入点wcsncpy_s于动态链接库msvcrt.dll上”,彻底服气了。这时候我才发现ADO太他NND好用了,什么也不需要。
      

  13.   

    ADO在XP下是默认安装了的,所以什么也不需要,你查看一下DELPHI帮助,看到底要加哪些动态库。
      

  14.   

    我没招了,C++Biulder 6试验成功,智能用C++Biulder 再开发一遍了。谢谢你们的帮助。