5、ADO 数据对象(Active Data Objects) 
ADO是基于全新的OLE DB技术,OLE DB可对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取。随着ActiveX控件的升级(Windows 98的ActiveX 5.0),RDO将被以ActiveX技术为基础的ADO接口所替代。下面将介绍基于ActiveX技术的ADO访问SQL Server 6.5数据库的技术和方法。基于浏览器的ADO接口常用函数如下: 
(1)取当前的工作数据库 
由于管理任务一般都必须在Master库中完成,因此在执行管理任务之前,最好保存当前工作库,以便完成任务之后再切换回原来的任务。 
| Public Function SQLGetCurrentDatabaseName(Cn As ADODB.Connection) As String  
Dim sSQL As String  
Dim RS As New ADODB.Recordset  
On Error GoTo errSQLGetCurrentDatabaseName  
sSQL="select CurrentDB=DB_NAME ( )"  
RS.Open sSQL, Cn  
SQLGetCurrentDatabaseName=Trim $ (RS! CurrentDB)  
RS.Close  
Exit Function  
errSQLGetCurrentDatabaseName:  
SQLGetCurrentDatabaseName=" "  
End Function | 
 
(2)取SQL Server安装目录下的DATA子目录路径 
取SQL Server的设备文件缺省目录,返回如D:Mssql DATA。 
| Public Function SQLGetDataPath(Cn As ADODB.Connection) As String  
Dim sSQL As String  
Dim RS As New ADODB.Recordset  
Dim sFullPath As String 
On Error GoTo errSQLGetDataPath  
sSQL="select phyname from master..sysdevices where name=注释:master注释: "  
RS.Open sSQL, Cn  
sFullPath = RS! phyname  
RS.Close  
SQLGetDataPath=Left $ (sFullPath, Len(sFullPath) -10) 注释:MASTER.DAT的大小  
Exit Function 
errSQLGetDataPath:  
SQLGetDataPath=" "  
End Function | 
 
(3)创建一个新数据库 
| Public Function SQLCreateDatabase65 
(Cn As ADODB.Connection,sDBName As String, 
sDataDeviceName As String, nDataSize As Integer, 
Optional sLogDeviceName,
Optional nLogSize) As Boolean 
Dim sSQL As String  
On Error GoTo errSQLCreateDatabase65 
Dim sDB As String  
sDB =SQLGetCurrentDatabaseName(Cn) 
sSQL = "USE master"  
Cn.Execute sSQL  
sSQL ="CREATE DATABASE" & sDBName  
sSQL = sSQL &" ON " & sDataDeviceName & "=" & nDataSize  
If Not IsMissing(sLogDeviceName) And Not IsMissing(nLogSize) Then  
sSQL = sSQL & "LOG ON" & sLogDeviceName & "="& nLogSize  
End If  
Cn.Execute sSQL  
sSQL = "USE" & sDB  
Cn.Execute sSQL  
SQLCreateDatabase65 = True  
Exit Function  
errSQLCreateDatabase65:  
On Error Resume Next  
sSQL = "USE " & sDB  
Cn.Execute sSQL  
SQLCreateDatabase65 = False  
End Function |