Sql服务器及数据库枚举

1. 枚举局域网内所有的SQLSERVER实例
  函数:
     function GetAllServerInstances :TStringList;
     var
      oApplication ,
      oSeverNameList : Variant ;
      i : integer ;
      sNameList : TStringList ;
     begin
      sNameList := TStringList.Create ;
      oApplication := CreateOLEObject ('SQLDMO.Application') ;
      oSeverNameList := oApplication.ListAvailableSQLServers ;
      for i:= 1 to oSeverNameList.Count do
       sNameList.Append (oSeverNameList.Item(i)) ;
      Result := sNameList ;
      oApplication := NULL;
      oSeverNameList := NULL;
     end;
   
  2.登陆到指定的SQLSERVER实例
  函数:
     function LoginServerInstances (sServer,sUser,sPassword :string):Variant;
     var
      oSQLServer : Variant ;
     begin
      oSQLServer := CreateOLEObject ('SQLDMO.SQLServer');
      oSQLServer.LoginTimeout := 30;
      oSQLServer.LoginSecure := False;
      oSQLServer.AutoReconnect := True;
      oSQLServer.Connect(sServer,sUser,sPassword);
      Result := oSQLServer;
      oSQLServer := NULL ;
     end;
   
以上两个函数可以帮助我们完成取得局域网内所有的SQLSERVER实例并且
登陆上一个指定的实例。接下来就看看如何取得指定数据库的表名称和存储
过程名称 :
 
   3.枚举指定Sqlserver实例所有database的名称
   函数:
     function GetAllDatabaseNameList (oSQLServer : Variant ):TStringList;
     var
      sNameList : TStringList ;
      i : integer;
     begin
      sNameList := TStringList.Create ;
      for i:= 1 to oSQLServer.Databases.Count do
       sNameList.Append (oSQLServer.Databases.Item(i).Name) ;
      Result := sNameList ;
     end;
   
   4.枚举指定数据库所有Table的名称
   函数:
     function GetAllTableNameList (oSQLServer : Variant ; sDataBaseName : string ):TStringList;
     var
      oDatabase : Variant ;
      sNameList : TStringList ;
      i : integer;
     begin
      sNameList := TStringList.Create ;
      oDatabase := CreateOLEObject ('SQLDMO.Database');
      oDatabase := oSQLServer.Databases.Item(sDataBaseName);
      for i:= 1 to oDatabase.Tables.Count do
       sNameList.Append (oDatabase.Tables.Item(i).Name) ;
      Result := sNameList ;
      oDatabase := Null ;
     end;

   5.枚举指定数据库所有StoreProcedure的名称
   函数:
     function GetAllStoreProcedureNameList (oSQLServer : Variant ; sDataBaseName : string ):TStringList;
     var
      oDatabase : Variant ;
      sNameList : TStringList ;
      i : integer;
     begin
      sNameList := TStringList.Create ;
      oDatabase := CreateOLEObject ('SQLDMO.Database');
      oDatabase := oSQLServer.Databases.Item(sDataBaseName);
      for i:= 1 to oDatabase.StoredProcedures.Count do
       sNameList.Append (oDatabase.StoredProcedures.Item(i).Name) ;
      Result := sNameList ;
      oDatabase := Null ;
     end;

转载于:https://www.cnblogs.com/94YY/archive/2011/05/11/2043492.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值