在程序里调用数据库连接窗口,利用它在程序里进行多种数据库接连字符串生成。

解决方案 »

  1.   

    像这个样的
    <IMG alt="" border=0 src="http://www.qjsq.com/qjsq/admin/webedit/uploadfile/2004102810478599.JPG" style="BORDER-BOTTOM-COLOR: #000000; BORDER-LEFT-COLOR: #000000; BORDER-RIGHT-COLOR: #000000; BORDER-TOP-COLOR: #000000; FILTER: ">
      

  2.   

    http://www.qjsq.com/qjsq/admin/webedit/uploadfile/2004102810478599.JPG
      

  3.   

    先创建一个文本文件改为 1.udl (随便取个名称)。双击打开设置一下,分发。
    用1.udl连接。如果连接不上调用
    ShellExecute(0, nil, 'C:\Documents and Settings\Administrator\My Documents\1.udl', nil, nil, 1);
    设置。点确定自动将设置保存在1.udl中。
    在1.udl中就保存多种数据库接连字符串,可以用文本打开。
      

  4.   

    用記事本生成一個空文件,另存為.udl文件,然後再配置.最後就通過它來連接數據庫。
      

  5.   

    給個例子給你,多給點分
    unit Unit_Main;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls,IniFiles, Grids, DBGrids, ComCtrls;type
      TfrmMain = class(TForm)
        btUpgrade: TButton;
        btCancel: TButton;
        up_sql: TADOCommand;
        OpenDial: TOpenDialog;
        ProgressBar1: TProgressBar;
        Label1: TLabel;
        procedure btUpgradeClick(Sender: TObject);
        procedure btCancelClick(Sender: TObject);
      private
      function SqlConnectionStr:String;
        { Private declarations }
      public
        { Public declarations }
      end;var
      frmMain: TfrmMain;implementation
    {$R *.dfm}function TfrmMain.SqlConnectionStr:String;
     var Udltext:TiniFile;
     providerStr,filePath:string;
    begin
     filePath:=ExtractFileDir(Application.ExeName)+'\connection.udl';
     Udltext:=Tinifile.Create(filePath);
     if not FileExists(filePath) then
      begin
        result:='';
        exit;
      end;
     providerStr:='provider='+Udltext.ReadString('oledb','Provider','');
     result:=providerStr;
    end;
    procedure TfrmMain.btUpgradeClick(Sender: TObject);
    var fileload:string;
    Data1,data2:TStringList;
    i,j,k:integer;
    s,sql:string;
    begin
    if OpenDial.Execute then
          fileload:=OpenDial.FileName ;
     if fileload<>'' then
     begin
      Data1:=TStringList.Create ;
      data2:=TStringList.Create ;
     try
      try
        Data1.Clear;
        Data1.LoadFromFile(fileload);
        j:=0;
        for i:=0 to Data1.Count-1 do
        begin
           if (trim(data1[i])<>'go') and  (trim(data1[i])<>'GO') and
              (trim(data1[i])<>'gO') and  (trim(data1[i])<>'Go') then
           begin
             s:=s+data1[i]+' '
           end else
           begin
            data2.Insert(j,s);
            j:=j+1;
            s:='';
           end;
        end;
       up_sql.ConnectionString:=SqlConnectionStr;
       ProgressBar1.Max :=data2.Count-1;
       ProgressBar1.Min :=0;
       progressbar1.StepIt;
        for k:=0 to data2.Count-1 do
        begin
          sql:= data2[k];
          up_sql.CommandText:=sql;
          up_sql.Prepared ;
          up_sql.Execute;
          ProgressBar1.StepBy(k);
          self.Update ;
          self.Refresh ;
        end;
        label1.Caption :='完成';
        except
        begin
        data2[k]:=data2[k]+'【運行到這裡出錯了,請檢查語法】';
        data2.SaveToFile('d:\history.txt');
        showmessage('運行中出現語法錯語,請查看執行過程');
         end;
       end;
      finally
       data2[k+1]:='.....執行到這裡結束......';
        data2.SaveToFile('d:\history.txt');
        data1.Free;
        data2.Free;
      end;
     end;
    end;procedure TfrmMain.btCancelClick(Sender: TObject);
    begin
     close;
    end;end.
      

  6.   

    对不起哦这个最有效了.  ADOConnection1.ConnectionString := PromptDataSource(Handle, ADOConnection1.ConnectionString);