为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

使用VB远程创建SQL数据库及表

2018-12-23 7页 doc 23KB 55阅读

用户头像

is_729658

暂无简介

举报
使用VB远程创建SQL数据库及表使用VB远程创建SQL数据库及表 在进行C/S架构的数据库管理系统中,首要做的一件事是,给远程数据库服务器创建数据库及表、视图、存储过程等等。或是由于某种原因,需要对远程数据库进行修改或建表等等。于是就产生了远程操作数据库服务器的要求。 在这里,远程服务器的数据库是MS SQL2000,服务器地址是:192.168.28.200,数据库服务器使用WINDOWS身份验证,用户名sa,密码hssxezflb。 一、远程连接数据库服务器并创建数据库。 因为使用ADO连接数据库,故在“工程”->“引用”添加Microsoft ...
使用VB远程创建SQL数据库及表
使用VB远程创建SQL数据库及表 在进行C/S架构的数据库管理系统中,首要做的一件事是,给远程数据库服务器创建数据库及表、视图、存储过程等等。或是由于某种原因,需要对远程数据库进行修改或建表等等。于是就产生了远程操作数据库服务器的。 在这里,远程服务器的数据库是MS SQL2000,服务器地址是:192.168.28.200,数据库服务器使用WINDOWS身份验证,用户名sa,密码hssxezflb。 一、远程连接数据库服务器并创建数据库。 因为使用ADO连接数据库,故在“”->“引用”添加Microsoft ActiveX Data Objects 2.6 Library。 需要创建数据库,首先要连接到数据库服务器,需要连接到数据库master。 1、数据定义 Dim ConnStr As String „数据库连接字符串 Dim SqlStr As String „查询语言字符串 Dim conn As New ADODB.Connection „ADO连接对象 Dim rs As New ADODB.Recordset „ADO数据集 2、设置数据库连接字符串并连接数据库master ConnStr ="Driver={SQL Server}; Server=192.168.28.200; Uid=sa; Pwd=hssxezflb; database=master" „可以写在一行,这里是为了排版需要 conn.Open ConnStr „打开数据库 if conn.State<>adStateOpen Then msgbox “数据库打开失败” exit sub end if 数据库打开失败,原因很多,见《Window 2003 SQL2000远程连接的问题解决办法.doc》 数据库连接字符串的方式也可以这样进行写 ConnStr ="Provider=sqloledb.1; password=hssxezflb; user id=sa; initial catalog=master; data source=192.168.28.200” 3、创建所需要的数据库 在master数据库中,有一个表sysdatabases,记录了本SQL服务器的所有数据库。通过查询是否存在欲创建的数据库,如果不存在,则创建。如果存在,则另做处理(一般是换个数据库名称)。设欲创建的数据库名称为flb。 SqlStr = "select Name from dbo.sysdatabases where Name = 'flb';" rs.Open SqlStr, conn, adOpenKeyset, adLockOptimistic If rs.RecordCount = 0 Then '数据库不存在,则创建数据库 rs.Close conn.BeginTrans „启动事件 SqlStr = "Create Database flb;" conn.Execute SqlStr conn.CommitTrans „提交事件 Else msgbox “数据库flb已经存在,无法创建。” rs.Close „数据库存在,给予提示 End If 4、完整代码如下: ‘远程连接数据库服务器并创建数据库flb Private Sub Command1_Click() Dim ConnStr As String Dim SqlStr As String Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset ConnStr = "Driver={SQL Server};Server=192.168.28.100;Uid=sa;Pwd=hssxezflb;database=master" conn.Open ConnStr if conn.State<>adStateOpen Then msgbox “数据库打开失败” exit sub end if SqlStr = "select Name from dbo.sysdatabases where Name = 'flb';" rs.Open SqlStr, conn, adOpenKeyset, adLockOptimistic If rs.RecordCount = 0 Then '数据库不存在,则创建数据库 rs.Close conn.BeginTrans SqlStr = "Create Database flb;" conn.Execute SqlStr conn.CommitTrans Else msgbox “数据库flb已经存在,无法创建。” rs.Close End If End Sub 二、连接新创建的数据库并创建表、视图、存储过程 1、连接新创建的数据库 根据上述过程,只需要把master改为flb即可。 ConnStr ="Driver={SQL Server}; Server=192.168.28.200; Uid=sa; Pwd=hssxezflb; database=flb" „可以写在一行,这里是为了排版需要 conn.Open ConnStr „打开数据库 if conn.State<>adStateOpen Then msgbox “数据库打开失败” exit sub end if 2、使用SQL脚本创建表 在事先已经建立好的数据库上,打开SQL企业管理吕,选中欲创建脚本的表,然后按 右键->所有任务->生成SQL脚本。(或者单击“工具”->“生成SQL脚本”)。 如下所示: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DcBs]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[DcBs] GO CREATE TABLE [dbo].[DcBs] ( [dc_id] [bigint] NOT NULL , [dc_cqr] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_sfz] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_xm] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_gx] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_nr1] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_nr2] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_nr3] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_nr4] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_sj] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [dc_dw] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO :第一个GO之前,是查询是否存在表DCBS,如果存在,则删除它。 第二GO之前,是创建表的结构,按列号排序是“字段名”、“数据类型”、“大小”、“是 否非空”。 这些脚本可以地SQL查询分析器中直接执行的。在这里,只需要把第二个GO的内容, 做为一个字符串的值,使用EXECUTE来执行。如下: Dim SqlTxt As String SqlTxt = "CREATE TABLE [dbo].[DcBs] (" & _ "[dc_id] [bigint] NOT NULL ," & _ "[dc_cqr] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_sfz] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_xm] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_gx] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_nr1] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_nr2] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_nr3] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_nr4] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_sj] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," & _ "[dc_dw] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL " & _ ") ON [PRIMARY]" conn.Execute SqlTxt VB执行SQL脚本文件(.sql)的两种方式 三、 1、采用读文件的方式,把脚本内容存入字符串 Public Sub ExecuteSQLScriptFile(cn as ADODB.Connection,sqlFile As String) DimSqlStr As String, TmpStr As String Open sqlFile For Input As #1 strSql = "" Do While Not EOF(1) Line Input #1, strTmp If UCase$(strTmp) = "GO" Then cn.Execute strSql strSql = "" Else strSql = strSql & strTmp & vbCrLf End If Loop If strSql <> "" Then cn.Execute strSql Close #1 End Sub 2、使用CMD执行文件的方式执行脚本文件 Public Sub ExecuteSQLScriptFile(cn as ADODB.Connection,sqlFile As String) Dim sql as string sql="master.dbo.xp_cmdshell ? osql -U username -P password -i " & sqlFile cn.execute sql End Sub
/
本文档为【使用VB远程创建SQL数据库及表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索