如何自动发布MS SQL SERVER数据库?
'程序编写: 陈林茂
‘编写日期:2003-01-01
当您的MIS系统开发好以后,您如何尽快的分发您的数据库呢?
下面我将提供VB代码的具体实现:
Option Explicit
'define the sql connect
Dim oSQLServer As SQLDMO.SQLServer
Dim oCurrentDB As SQLDMO.Database
Dim oCurrentTable As SQLDMO.Table
Dim oTestIdx As SQLDMO.Index
'sqlDmo is Connected Yes or No
Public sName As String
Private IsConnected As Boolean
'connect to local database server
Public Function ConnectDmo() As Boolean
On Error GoTo HandleError
'If we're connected, then disconnect and clear lists.
If IsConnected = True Then
oSQLServer.DisConnect
IsConnected = False
End If
'Begin connect to sqlserver or msde
'Attempt a connection, then fill the properties stuff.
oSQLServer.ApplicationName = "SQL-DMO Index Test"
oSQLServer.LoginSecure = True
'connect
oSQLServer.Connect "(local)", "sa", ""
IsConnected = True
ConnectDmo = True
HandleError:
'connect failth
If IsConnected = False Then
IsConnected = False
ConnectDmo = False
End If
End Function
'add a exists database to server
Public Function AddDataBase(ByVal dbName As String, ByVal DBPath As String, ByVal rstr As String) As Boolean
Dim rstring
'rstring = oSQLServer.AttachDBWithSingleFile(dbName, DBPath)
rstring = oSQLServer.AttachDB(dbName, DBPath)
AddDataBase = True
rstr = rstring
End Function
'delete the exists database
Public Function DelDataBase(ByVal dbName As String) As Boolean
Dim rstring
rstring = oSQLServer.DetachDB(dbName)
DelDataBase = True
End Function
Private Sub UserControl_Initialize()
On Error GoTo merror
Set oSQLServer = New SQLDMO.SQLServer
oSQLServer.LoginTimeout = 15
oSQLServer.ODBCPrefix = False
Name = "msdeconn1"
merror:
End Sub
Public Function isDBexists(ByVal dbName As String) As Boolean
Dim oDB As SQLDMO.Database
Dim rc As Boolean
'reconnect to database
oSQLServer.DisConnect
oSQLServer.ReConnect
rc = False
For Each oDB In oSQLServer.Databases
If oDB.SystemObject = False Then
If Trim(UCase(oDB.Name)) = Trim(UCase(dbName)) Then
rc = True
End If
End If
Next oDB
'set the return value
isDBexists = rc
End Function
Private Sub UserControl_Terminate()
'end connect the database
oSQLServer.Close
End Sub
Public Function startServer()
oSQLServer.Start True
End Function
Public Sub stopserver()
oSQLServer.Stop
End Sub
Public Property Get Name() As Variant
Name = sName
End Property
Public Property Let Name(ByVal vNewValue As Variant)
sName = vNewValue
End Property