unit DataControl;interface
uses
 DB,DBTables,ADODB,Messages,Dialogs;
Type
 DataCon=class
   Private
    //数据库连接
    DataConnection:TADOConnection;
    //数据库名
    DatabaseName:WideString ;
    
   public
    procedure SetDataName(Value:WideString );
end;
implementationprocedure DataCon.SetDataName(Value: WideString);
begin
 try
   DatabaseName:=Value;
   DataConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=+.\'+DatabaseName+';Persist Security Info=False';
   DataConnection.Open;
 except
   ShowMessage('连接数据库失败');
 end;
end;
end. 
请问各位,我在类里编写了个数据库连接的过程,但是在引用的时候为什么老是连不上,请指教(具体内容请参考附件)

解决方案 »

  1.   

    你先在窗体上放个控件,在控件的CONNTIONSTRING中试一下,看能连上不.
      

  2.   

    路径的问题
    '...,Data Source='+你的连接路径+'....
      

  3.   

    在窗体上放个控件,在控件的CONNTIONSTRING中调试是可以成功连接的,但是在类中就不行了
      

  4.   

    Create方法是怎么写的?
    是否初始化Connection?
      

  5.   

    Data Source请使用绝对路径,相对路径.\有可能不正常,特别是当你使用过OpenDialog/SaveDialog等转到了其它目录之后。
      

  6.   

    DataConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(ParamStr(0))+DatabaseName+';Persist Security Info=False'; 
      

  7.   

    似乎没有调用adoconection的create.
    路径要用绝对路径,用application.exepath里面取,相对路径容易受对话框控件的改变
      

  8.   

    ***************************************************************************思想决定行动,行动决定习惯,习惯决定命运.
    程序员在深圳QQ群,交流产生思想碰撞.部份专业群:
    程序员在深圳c++群15195967
    程序员在深圳英语学习群:23864353
    程序员在深圳c++Ⅱ17409451
    程序员在深圳嵌入式开发群37489763
    程序员在深圳移动开发群31501597
    程序员在深圳创业群33653422部份高级程序员群:
    高级群I:17538442
    高级群II:7120862部份初、中级程序员群:
    第三群:2650485
    第五群:29537639
    第四群:28702746
    第六群:10590618
    第七群:10543585
    第八群:12006492
    第九群:19063074
    第十群:2883885
    第十一群:25460595
    第十二群:9663807深圳程序员QQ群联盟成立三年多,拥有三十个以上的QQ群,人数超二千多人,大量经验丰富的老手,成员从业于大公司(如微软、IBM,SUN,华为)、来自国内著名高校和研究院成员,和有丰富实践经验的高级程序员、系统分析员(包括参加过上亿元的项目的架构师),有很热爱技术的成员(包括自己写操作系统),还有少数女程序员。推荐:深程高级群I:17538442 深程高级群II:7120862 (深程高级群不欢迎新手,如果在深圳,月薪6K以下的别加入) c++:15195967  mobile:31501597嵌入式:37489763  
    —————————————————————————————————————————— 
    群内交流解决问题的方法,一般难以直接得到答案,问题的解决还是要靠自己。(授之以渔与授之以鱼的关系)。
    *****************************************************************************
      

  9.   

    DataConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='=ExtractFilePath(ParamStr(0))+DatabaseName+';Persist Security Info=False'; 
      

  10.   

    DataConnection.State()测试是否打开!
      

  11.   

    这样就想用哪不是神仙了,
    存在问题:DataConnection:TADOConnection; 
    这个对象并没有创建,你在外问调用的是DataCon类的一个对象
    解决:
       写个构造
       constructor Create;
       destructor Destroy;Override;实现
      constructor Create;
      begin
         inherited create;
         DataConnection:=TADOConnection.create(nil);
      end;
    destructor Destroy;
    begin
       DataConnection.free;
       inherited;
    end;
    这些基本的东东都没有做好当然用不了了.