数据库创建 我公司买了一个考勤机,其考勤软件的数据库是SQL的.第一次使用时,提示创建数据库并有界面出现,按创建数据库按键后,完整的数据库(包括表,字段等)就被创建出来了.在VB中如何做到这点,望高人提供一个范例,谢谢!高分酬谢!(分多少不是主要的,主要是表达我的一份诚意) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方法1:事先备份一个bak文件,在软件第一次运行时用restore语句恢复方法2:在软件第一次运行时执行SQL的建库建表语句 create database 建立数据库create table 建立表 发一段建表 和修改表结构 的代码给你看看Private Sub Form_Load()RefTREEDim r As New ADODB.RecordsetDim SQL As String'检查支出会计科目是否成功的建立On Error GoTo Err1r.Open "select ZCKJ from s_tab_bmdw where 1=2", cnr.CloseOn Error GoTo Err2r.Open "select flkm from s_tab_bmdw where 1=2", cnr.CloseOn Error GoTo Err3r.Open "select Nfz from s_tab_bmdw where 1=2", cnr.CloseOn Error GoTo Err4r.Open "select JJS from s_tab_bmdw where 1=2", cnr.CloseOn Error GoTo Err5r.Open "select yssy from s_tab_bmdw where 1=2", cnr.CloseMe.Labdqzt = "当前使用帐套:" & ZTExit SubErr1:SQL = "" SQL = "alter table s_tab_bmdw add ZCKJ char(20)" cn.Execute SQL SQL = "update s_tab_bmdw set ZCKJ=''" cn.Execute SQLResumeExit SubErr2:SQL = "" SQL = "alter table s_tab_bmdw add flkm char(20),flbl float,fzkm char(20),fzbl float" cn.Execute SQL SQL = "update s_tab_bmdw set flkm='43451D',FLBL=0.15,fzkm='43451C',fzbl=0.15" cn.Execute SQLResumeExit SubErr3:SQL = "" SQL = "alter table s_tab_bmdw add nfz money" cn.Execute SQL Resume Exit SubExit SubErr4:SQL = "" SQL = "alter table s_tab_bmdw add JJS money" cn.Execute SQL Resume Exit SubExit SubErr5:SQL = "" SQL = "alter table s_tab_bmdw add yssy money" cn.Execute SQL Resume Exit SubEnd Sub 建表的代码 SQL = "CREATE TABLE [dbo].[s_tab_ksjjbl] (" SQL = SQL & "[idd] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ," SQL = SQL & "[zt] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ," SQL = SQL & "[bmbh] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ," SQL = SQL & "[bmmc] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ," SQL = SQL & "[bl] [money] NULL" SQL = SQL & ") ON [PRIMARY]" cn.Execute SQL 关于CREATE DATABASE 的代码 我现在暂时没有 抄一段书的你自己看吧 其实也就是一个SQL语句的不同而已CREATE DATABASENameCREATE DATABASE — 创建新数据库 CREATE DATABASE name [ WITH [ LOCATION = 'dbpath' ] [ TEMPLATE = template ] [ ENCODING = encoding ] ] 输入 name要创建的数据库名. dbpath在文件系统里存储新数据库的可选位置;用字串文本声明. 或者用 DEFAULT 表示使用缺省位置. template从哪个模板创建新数据库,这是模板名.或者用 DEFAULT 使用缺省模板 (template1). encoding创建新数据库用的多字节编码方法.声明一个字串文本名字 (比如,'SQL_ASCII'), 或者一个整数编号,或者是 DEFAULT 表示使用缺省编码. 输出 CREATE DATABASE命令成功执行的返回信息. ERROR: user 'username' is not allowed to create/drop databases你必须有特殊的 CREATEDB 权限来创建数据库。参阅 See CREATE USER。 ERROR: createdb: database "name" already exists如果声明的数据库 name 已经存在返回的信息. ERROR: database path may not contain single quotes数据库路径名 dbpath 不能包含单引号。这样要求是为了创建数据库目录的 shell 命令能够正确执行。 ERROR: CREATE DATABASE: may not be called in a transaction block如果你有一个明确的事务块正在处理,你不能调用 CREATE DATABASE。你必须先结束事务。 ERROR: Unable to create database directory 'path'., ERROR: Could not initialize database directory.这种情况最有可能是因为对数据目录权限不够, 磁盘已满或其他文件系统问题。数据库服务器运行的机器上的用户必 须能访问该路径。 描述 CREATE DATABASE 创建一个新的 Postgres 数据库.创建者成为新数据库的管理员. 可以声明一个可选的数据库位置,例如,在另一块硬盘上存放数据库。 该路径必须是事先用 initlocation 命令准备好了的. 如果路径名不包含斜杠,那么它被解释成一个环境变量, 该变量必须为服务进程所知。这样数据库管理员 可以对能够在那里创建数据库进行控制。(例如,一个用户化的选择是 'PGDATA2'。)如果服务器带着 ALLOW_ABSOLUTE_DBPATHS (缺省时没有)选项编译, 那么也允许使用以斜杠开头为标识的绝对路径(例如, ' '/usr/local/pgsql/data')。 缺省时,新数据库将通过克隆标准系统数据库 template1 来创建.不同的模板可以用 TEMPLATE = name 来写.尤其是,如果你用 TEMPLATE = template0, 你可以创建一个很纯净的数据库,只包括你的版本的 Postgres 预定义的 标准对象.这个方法可以避免把任何本地安装的对象 (它们已经加入到 template1 里去了.) 拷贝到新数据库. 可选的编码参数允许选择数据库编码, 如果你的服务器是带着多字节编码支持编译的话. 如果没有声明,缺省是所选用的模板数据库用的编码. 可选参数可以以任意顺序写,而不仅是上面显示的顺序. 注意 CREATE DATABASE 是 Postgres 语言的扩展. 使用 DROP DATABASE 删除一个数据库. SQL数据库脚本我有,就不知道怎通过VB把这些建库语句传给SQL服务器.看了上面的我好象明白了一些: list简单问题(送10分) 如何给一个已经打开的文件重命名? 关于表达式计算的: 如何调用拨号上网及断开? 菜鸟问题,有关VB代码 哪位朋友知道CDBVariant中的m_boolval类型怎么用? shell函数执行有问题!!! 请问如何使右上角的关闭按钮失效!!谢谢!(在线等待!) 誰能看懂下面的代码? 如何控制鼠标和键盘向另一个正在运行的WINDOWS窗口中发送各鼠标信息? 求VB6下的可折叠代码的ADD-INS[解决就送500分] 咨询例子:VB6设计一组图片,在窗体的上部,循环自右向左循环!!!
方法2:在软件第一次运行时执行SQL的建库建表语句
RefTREE
Dim r As New ADODB.Recordset
Dim SQL As String
'检查支出会计科目是否成功的建立
On Error GoTo Err1
r.Open "select ZCKJ from s_tab_bmdw where 1=2", cnr.CloseOn Error GoTo Err2
r.Open "select flkm from s_tab_bmdw where 1=2", cnr.Close
On Error GoTo Err3
r.Open "select Nfz from s_tab_bmdw where 1=2", cnr.Close
On Error GoTo Err4
r.Open "select JJS from s_tab_bmdw where 1=2", cnr.CloseOn Error GoTo Err5
r.Open "select yssy from s_tab_bmdw where 1=2", cnr.CloseMe.Labdqzt = "当前使用帐套:" & ZT
Exit Sub
Err1:
SQL = ""
SQL = "alter table s_tab_bmdw add ZCKJ char(20)"
cn.Execute SQL
SQL = "update s_tab_bmdw set ZCKJ=''"
cn.Execute SQL
Resume
Exit Sub
Err2:
SQL = ""
SQL = "alter table s_tab_bmdw add flkm char(20),flbl float,fzkm char(20),fzbl float"
cn.Execute SQL
SQL = "update s_tab_bmdw set flkm='43451D',FLBL=0.15,fzkm='43451C',fzbl=0.15"
cn.Execute SQL
Resume
Exit Sub
Err3:
SQL = ""
SQL = "alter table s_tab_bmdw add nfz money"
cn.Execute SQL
Resume
Exit Sub
Exit Sub
Err4:
SQL = ""
SQL = "alter table s_tab_bmdw add JJS money"
cn.Execute SQL
Resume
Exit Sub
Exit Sub
Err5:
SQL = ""
SQL = "alter table s_tab_bmdw add yssy money"
cn.Execute SQL
Resume
Exit Sub
End Sub
SQL = SQL & "[idd] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,"
SQL = SQL & "[zt] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,"
SQL = SQL & "[bmbh] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,"
SQL = SQL & "[bmmc] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,"
SQL = SQL & "[bl] [money] NULL"
SQL = SQL & ") ON [PRIMARY]"
cn.Execute SQL
其实也就是一个SQL语句的不同而已
CREATE DATABASE
Name
CREATE DATABASE — 创建新数据库
CREATE DATABASE name
[ WITH [ LOCATION = 'dbpath' ]
[ TEMPLATE = template ]
[ ENCODING = encoding ] ]
输入
name
要创建的数据库名. dbpath
在文件系统里存储新数据库的可选位置;用字串文本声明. 或者用 DEFAULT 表示使用缺省位置. template
从哪个模板创建新数据库,这是模板名.或者用 DEFAULT 使用缺省模板 (template1). encoding
创建新数据库用的多字节编码方法.声明一个字串文本名字 (比如,'SQL_ASCII'), 或者一个整数编号,或者是 DEFAULT 表示使用缺省编码.
输出
CREATE DATABASE
命令成功执行的返回信息. ERROR: user 'username' is not allowed to create/drop databases
你必须有特殊的 CREATEDB 权限来创建数据库。参阅 See CREATE USER。 ERROR: createdb: database "name" already exists
如果声明的数据库 name 已经存在返回的信息. ERROR: database path may not contain single quotes
数据库路径名 dbpath 不能包含单引号。这样要求是为了创建数据库目录的 shell 命令能够正确执行。 ERROR: CREATE DATABASE: may not be called in a transaction block
如果你有一个明确的事务块正在处理,你不能调用 CREATE DATABASE。你必须先结束事务。 ERROR: Unable to create database directory 'path'., ERROR: Could not initialize database directory.
这种情况最有可能是因为对数据目录权限不够, 磁盘已满或其他文件系统问题。数据库服务器运行的机器上的用户必 须能访问该路径。
描述
CREATE DATABASE 创建一个新的 Postgres 数据库.创建者成为新数据库的管理员. 可以声明一个可选的数据库位置,例如,在另一块硬盘上存放数据库。 该路径必须是事先用 initlocation 命令准备好了的. 如果路径名不包含斜杠,那么它被解释成一个环境变量, 该变量必须为服务进程所知。这样数据库管理员 可以对能够在那里创建数据库进行控制。(例如,一个用户化的选择是 'PGDATA2'。)如果服务器带着 ALLOW_ABSOLUTE_DBPATHS (缺省时没有)选项编译, 那么也允许使用以斜杠开头为标识的绝对路径(例如, ' '/usr/local/pgsql/data')。 缺省时,新数据库将通过克隆标准系统数据库 template1 来创建.不同的模板可以用 TEMPLATE = name 来写.尤其是,如果你用 TEMPLATE = template0, 你可以创建一个很纯净的数据库,只包括你的版本的 Postgres 预定义的 标准对象.这个方法可以避免把任何本地安装的对象 (它们已经加入到 template1 里去了.) 拷贝到新数据库. 可选的编码参数允许选择数据库编码, 如果你的服务器是带着多字节编码支持编译的话. 如果没有声明,缺省是所选用的模板数据库用的编码. 可选参数可以以任意顺序写,而不仅是上面显示的顺序. 注意
CREATE DATABASE 是 Postgres 语言的扩展. 使用 DROP DATABASE 删除一个数据库.