单元unit2:  (供所有其他单元数据库连接调用的)
          DataModule2  
                  ADOConnection1
                  DataSource1
                  ADOQuery1单元 unit1: TYPE
        DBGrid1: TDBGrid; .....implementation{$R *.dfm}
uses unit2;procedure TForm1.FormCreate(Sender: TObject);
beginunit2.DataModule2.ADOConnection1.ConnectionString :=   //这里就开始报错了
'Provider=SQLOLEDB.1;
 Password=sa;
 Persist Security Info=True;
 User ID=sa;
 Data Source=LGS6715'; unit2.DataModule2.ADOConnection1.Connected := true;
 unit2.DataModule2.ADOConnection1.free;
end;
end.------------------------------------------
不知道该怎么写才合理?
我想公共调用UNIT2的资源,实现UNit里代码化配置数据库连接,取数据库记录,并显示在UNIT1中的
datagrid中

解决方案 »

  1.   

    uses
      unit2;DataModule2.ADOConnection1.ConnectionString :=   //这里就开始报错了
    'Provider=SQLOLEDB.1;
     Password=sa;
     Persist Security Info=True;
     User ID=sa;
     Data Source=LGS6715';就行了。                                                  www.coderpub.com
      

  2.   

    将数据库组件放在DataModule里
    然后unit1和unit2都uses DataModule的单元。然后在unit1或unit2里面需要访问数据库是通过 
    DataModule2.ADOConnection1.Connected := true;
    DataModule2.ADOConnection1.free;
      

  3.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      with unit2.DataModule2.AdoConnection1 do
      begin
        ConnectionString := 'Provider=SQLOLEDB.1; Password=sa; Persist Security    Info=True;User ID=sa; Data Source=LGS6715'; //放在一行
        Connected := true;
        free;
      end;
    end.
      

  4.   

    項目文件裡面一定得先創建DataModule2  否則肯定出錯,因為在調用之前DataModule2  都沒有創建,哪有不出錯的.
      

  5.   

    UNIT 里代码如此写:按照 hqhhh(枫叶) 提供的
    ----------------------------------------
    ....
    implementationuses Unit2;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      with unit2.DataModule2.AdoConnection1 do
      begin
        ConnectionString := 'Provider=SQLOLEDB.1; Password=sa; Persist Security  Info=True;User ID=sa; Data Source=LGS6715'; //放在一行
        Connected := true;
        free;
      end;
    end;----------------------------------------
    报错:
    project project_96118.exe raised exception class eaccessviolation with message
    'access violation at address 004ae4f4 in moudle 'project_96118.exe',
    read of address 00000060',process stopped,use step or run to continue
      

  6.   

    with unit2.DataModule2.AdoConnection1 do f7调试读到这行就报错了,很晕~高手帮忙啊
      

  7.   

    晕,上面已经有正确的写法了,你怎么不试试看呢??这样谁能帮你,晕死。将数据库组件放在DataModule里
    然后unit1和unit2都uses DataModule的单元。然后在unit1或unit2里面需要访问数据库是通过 
    DataModule2.ADOConnection1.Connected := true;
    DataModule2.ADOConnection1.free;不要unit2.DataModule2.ADOConnection1.Connected := true;
      

  8.   

    是的阿
    unit2  里就有1个datamoudle
    datamoudle里放了 ADOConnection1
                      DataSource1
                      ADOQuery1unit1
      ......implementationuses Unit2;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      with unit2.DataModule2.AdoConnection1 do
      begin
        ConnectionString := 'Provider=SQLOLEDB.1; Password=sa; Persist Security  Info=True;User ID=sa; Data Source=LGS6715'; //放在一行
        Connected := true;
        free;
      end;
    end;
      

  9.   

    晕,不要在unit2里面定义一个datamodule。(var datamodule2: TDatamodule)不要定义。而是在unit2里面uses datamodule所在的单元。 如: uses datamodule;然后调用ado控件的时候,就可以直接用datamodule1.Ado......等等了。明白?????狂晕
      

  10.   

    楼上好像还没看明白我的意思
    其实我就是按照你的意思做的 --------------------------------------datamodule 就是定义在UNIT2 单元里的,(如果定义一个datamodule ,它会自动创建一个单元,我这个UNIT2单元也是这么来的)UNIT2 单元的datamodule 我就放了3个组件:
    ADOConnection1
    DataSource1
    ADOQuery1现在想在UNIT单元运用UNIT2单元的这些部件,实现数据库连接,OK?在UNIT1单元是这么写的:
    -----------------------------
      ......implementationuses Unit2;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      with unit2.DataModule2.AdoConnection1 do  //这行就开始报错了
      begin
        ConnectionString := 'Provider=SQLOLEDB.1; Password=sa; Persist Security  Info=True;User ID=sa; Data Source=LGS6715'; //放在一行
        Connected := true;
        free;
      end;
    end;
    -------------------------------------不知道该怎么解决?送上UNIT2单元代码:
    ------------------
    unit Unit2;interfaceuses
      SysUtils, Classes, DB, ADODB;type
        TDataModule2 = class(TDataModule)
        DataSource1: TDataSource;
        ADOQuery1: TADOQuery;
        ADOConnection1: TADOConnection;  private
        { Private declarations }
      public
        { Public declarations }
      end;var
      DataModule2: TDataModule2;implementation{$R *.dfm}end.
      

  11.   

    谁有QQ,顺便留个QQ号码,请指教,高分相送