前不久做一个VB执行sql2000数据库脚本程序,本打算先读取脚本文件,再一条条执行,但这样效率太低,于是采取下面这种方法:
1.新建脚本文件,保存在C:/下面,如C:/Test.sql,文件如下:
USE master
GO
CREATE DATABASE Test
GO
USE Test
GO
CREATE TABLE [dbo].[students] (
[ID] [int] IDENTITY (1,1) NOT NULL,
[Name] [nvarchar] (6) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[students] WITH NOCHECK ADD
CONSTRAINT [PK_students] PRIMARY KEYCLUSTERED
(
)ON [PRIMARY]
GO
INSERT INTO students(Name) VALUES('古月轩')
GO
2.新建VB工程文件Test.vbp,保存在C:/Test目录下面,如C:/Test/Test.vbp,在该工程下新建窗体frmTest.frm并保存;
3.编写代码并执行,代码如下:
Option Explicit
Dim strServer,strUid,strPwd,strFile As String
Private Sub CmdExec_Click()
strServer = txtServer.Text '数据库服务器名
strUid = txtUser.Text'数据库用户名
strPwd = txtPwd.Text '数据库用户密码
strFile = txtfile.Text '需执行脚本文件名
Shell "osql -U" & strUid & " -P " & strPwd & " -S " & strServer & " -i " & Chr(34) & strFile & Chr(34),vbHide
MsgBox "Successful",vbInformation,"提示"
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub