我是Delphi的菜鸟,想问一个问题:
如果我不想在一个窗体上放ADO控件,而是想在一个单独的Unit单元中手动创建一个ADO控件,比如TADOConnection,改怎么做?其它单元怎么用它?
有例子请发到:[email protected]
谢谢!一定给分!

解决方案 »

  1.   

    const
    connectstringA ='Provider=MSDataShape.1;Persist Security Info=True;Data Source=';
      connectstringB =';;Data Provider=Microsoft.Jet.OLEDB.4.0';procedure DropPrimaryTable(DBFileName: string);
    var      //删除数据库中原有的表
      TN: string;
      A: TADOConnection;
      T: TADOQuery;
      i,j: integer;
      smTables: TStringList;
      smName: string;
    begin
      A:=TADOConnection.create(Application);
      smTables:=TstringList.Create;
      try
        A.connectionstring:=connectstringA + DBFileName + connectstringB;
        A.LoginPrompt:=False;
        A.GetTableNames(smTables,false);
        t:=TADOQuery.Create(application);
        try
          t.Connection:=A;
          for i:=smTables.Count - 1 downto 0 do
          begin
            smName:=smTables.Strings[i];
            if copy(smName,length(smName) - 3,4) <> 'back' then
              with t do
              begin
                Close;     //删除表
                SQL.Text:='drop table '+smName;
                ExecSQL;
              end;
          end;
        finally
          T.Free;
        end;
      finally
        A.Free;
        FreeAndNil(smTables);
      end;
    end;我的程序中中的一段,看不懂问我
      

  2.   

    你如果要在其它单元用它,你可以定义一个全局变量或在该窗体的public中定义,但必须保证窗体free时,其他引用的单元均没有再用此连接.然后,你可以该窗体的oncreate事件中创建此控件.
      

  3.   

    var
    adoco:Tadoconnection;
    begin
      adoco:=Tadoconnection.Create(nil);
      。。然后设置adoco的连接字符串等参数。
    end;
      

  4.   

    Killer2008:
    我照你的写法做了,可是编译时报错:没有定义Application变量。怎么回事呀?
    谢谢!
      

  5.   

    没有定义Application变量,怎么会?用Self试试