安装时用installsheild
可以用VB 生成 installDatabase.exe 此exe是按装数据库,根据sql脚本生成表等。
Private Sub Command1_Click()
On Error GoTo ErrorHandler
Dim Sql2000 As Object
Set Sql2000 = CreateObject("SQLDMO.Application")
Dim SqlInstance As Object
Set SqlInstance = CreateObject("SQLDMO.SQLServer")
Dim DatabaseName As StringDim sqlID As String
Dim Sqlstr As String
Dim fname As String
Me.MousePointer = 11SqlInstance.Connect Me.comServers.Text, Me.txtUser.Text, Me.txtPassword.Text
sqlID = SqlInstance.ConnectionID
Set SqlInstance = Sql2000.SQLServers.ItemByID(sqlID)
Dim newDataBase As Object
Set newDataBase = CreateObject("SQLDMO.Database")DatabaseName = Me.txtDatabase
newDataBase.Name = Me.txtDatabase
SqlInstance.Databases.Add newDataBase
fname = "sql.txt"
Sqlstr = GetStr(fname)
Sqlstr = "use [" + DatabaseName + "]" + vbCrLf + Sqlstr
SqlInstance.ExecuteImmediate (Sqlstr)Set Sql2000 = Nothing
Set NameList = Nothing
Set SqlInstance = Nothing
Me.MousePointer = 0
MsgBox "成功"
End
Exit Sub
ErrorHandler:
Me.MousePointer = 0
MsgBox "失败"
End Subgetstr()是把sql脚本读出到一字符串
可以用VB 生成 installDatabase.exe 此exe是按装数据库,根据sql脚本生成表等。
Private Sub Command1_Click()
On Error GoTo ErrorHandler
Dim Sql2000 As Object
Set Sql2000 = CreateObject("SQLDMO.Application")
Dim SqlInstance As Object
Set SqlInstance = CreateObject("SQLDMO.SQLServer")
Dim DatabaseName As StringDim sqlID As String
Dim Sqlstr As String
Dim fname As String
Me.MousePointer = 11SqlInstance.Connect Me.comServers.Text, Me.txtUser.Text, Me.txtPassword.Text
sqlID = SqlInstance.ConnectionID
Set SqlInstance = Sql2000.SQLServers.ItemByID(sqlID)
Dim newDataBase As Object
Set newDataBase = CreateObject("SQLDMO.Database")DatabaseName = Me.txtDatabase
newDataBase.Name = Me.txtDatabase
SqlInstance.Databases.Add newDataBase
fname = "sql.txt"
Sqlstr = GetStr(fname)
Sqlstr = "use [" + DatabaseName + "]" + vbCrLf + Sqlstr
SqlInstance.ExecuteImmediate (Sqlstr)Set Sql2000 = Nothing
Set NameList = Nothing
Set SqlInstance = Nothing
Me.MousePointer = 0
MsgBox "成功"
End
Exit Sub
ErrorHandler:
Me.MousePointer = 0
MsgBox "失败"
End Subgetstr()是把sql脚本读出到一字符串
/////////////////////////
// 创建和优化数据库
//////////////////////////
function CreateDataBase(svSQLsvr,svSQLusr,svSQLpwd)
STRING szCmdLine1,szWaitTxt,szdatabase,path;
begin
path=INSTALLDIR+"\database\\mydatabase_data.mdf";
szWaitTxt=" 正在创建数据库....";
SdShowMsg (szWaitTxt, TRUE);
Delay(2);
//szCmdLine="hello";
szdatabase = "/U "+svSQLusr+" /P "+svSQLpwd+" /S "+svSQLsvr+" /Q \"exec sp_attach_db N'fenoffice' , N'"+path+"'\"";
//SdShowMsg(szdatabase,WAIT);
//Delay(5);
if (LaunchAppAndWait("osql.exe", szdatabase,WAIT)<0) then;
MessageBox ("数据库创建失败!请确您的系统中已安装 Microsoft SQL Server 2000.\n如仍无法解决,请联系系统供应商!",SEVERE);
endif;
SdShowMsg (szWaitTxt, FALSE);
return 0;
end;