本人现在想写一个连接SQL小程序,主要功能说明如下:
第一步:创建窗体时在ComboBox1中列出服务器名称:
procedure TForm1.FormCreate(Sender: TObject);
var
   SQLServer:Variant;
   ServerList:Variant;
   i,nServers:integer;
begin
  SQLServer := CreateOleObject('SQLDMO.Application');
  ServerList:= SQLServer.ListAvailableSQLServers;
  nServers:=ServerList.Count;
  for i := 1 to nservers do
      ComboBox1.Items.Add(ServerList.Item(i));
  SQLServer:=NULL;
  serverList:=NULL;
end;
第2步:如果我选择WINDOWS登陆或者选择SQL用户名和密码后在ComboBox2中列出该服务器中的所有数据库别名;这步我不知道该什么实现它,请个位大虾指点一下,在此我先谢谢。如果谁有比较完整的代码,麻烦发给我好吗?EMAIL:[email protected]

解决方案 »

  1.   

    已发送到你的邮箱里,我是写到注册表,从注册表取出来的
    function TfrmSetupDataBase.MakeConStr: string;
    var ServerName,lgnId,lgnPwd,intialDataBase:string;
        lgntimeout:integer;
    begin
      serverName:=Trim(edServerName.Text);
      lgnId:=Trim(edLgnID.Text);
      lgnPwd:=trim(edPwd.Text);
      intialDataBase:=trim(edDataBase.Text);
      if Trim(edTimeOut.Text)='' then
        lgnTimeOut:=0
      else
        lgnTimeOut:=strtoint(trim(Trim(edTimeOut.Text)));
      Result:=adoConStr;
      if ServerName<>'' then
        Result:=Result+';Data Source='+ServerName ;
      if lgnId<>'' then
        Result:=Result+';User ID='+lgnId ;
      if lgnPwd<>'' then
        Result:=Result+';Password='+lgnPwd;
      if lgnTimeOut>0 then
        Result:=Result+';Connect Timeout='+IntToStr(lgnTimeOut);
      if intialDataBase<>'' then
        Result:=Result+';Initial Catalog='+intialDataBase;
    end;
      

  2.   

    该服务器中的所有数据库别名應該訪問Master數據庫的sysdatabases表select * from sysdatabases