日期:2010-07-17  浏览次数:21152 次

  平常我们只听说过ADO等一类ASP对象,但在ASP中还有个鲜为人知的专门SQL Server的ASP访问对象,它就是SQLOLE.SQLServer对象。SQLOLE.SQLServer可以直接访问SQL Server的系统属性。以Set oSQLServer = CreateObject ("SQLOLE.SQLServer")语句将产生一个SQL Server服务器对象。

    若要查看此服务器中数据库的集合,可用语句:

For Each SQLDB In oSQLServer.Databases
Response.Write SQLDB.Name ‘将列出所有的数据库,如Pubs等
Next

    若要查看某数据库中(如PUBS数据库)数据表的集合,可用语句:

pubDatabase=oSQLServer.Databases(“pubs”)
’oSQLServer是前面创建的SQL Server服务器对象
For Each DBTable In pubDatabase.Tables
Response.Write DBTable.Name
Next

    下面的语句将列出数据库中(PUBS数据库)数据视图

pubDatabase =oSQLServer.Databases(“pubs”)
’oSQLServer是前面创建的SQL Server服务器对象
For Each DBView In pubDatabase.Views
Response.Write DBView.Text
Next

    以下语句将列出数据库中(PUBS数据库)存贮过程

pubDatabase =oSQLServer.Databases(“pubs”)
’oSQLServer是前面创建的SQL Server服务器对象
For Each DBSP In pubDatabase.StoredProcedures
Response.Write DBSP.Text
Next

    程序运行的结果(取数据表名):

     取存贮过程的结果:

     一个完整的小例子源码附后。

< %@ LANGUAGE = VBScript % >

< HTML >
< HEAD >
< META NAME="GENERATOR" Content=
"Microsoft Developer Studio" >
< META HTTP-EQUIV="Content-Type"
content="text/html; charset=gb2312" >

< TITLE >< /TITLE >
< /HEAD >

< %
On Error Resume Next
Dim oSQLServer
Set oSQLServer = CreateObject ("SQLOLE.SQLServer")

strServer = "dep"
strLogin = "sa"
strPwd = ""

oSQLServer.Connect strServer,strLogin,strPwd

% >

< BODY BGCOLOR=#ffffff >
数据库列表
< SELECT NAME="Database" >
< %
For Each SQLDB In oSQLServer.Databases
If Not SQLDB.SystemObject Then
Response.Write "< OPTION VALUE=
""" & SQLDB.Name & """ >" & SQLDB.Name

& "  "
End If
Next
Set oSQLServer = Nothing
% >
< /SELECT >
< /BODY >
< /HTML >