曾经用sqldmo创建远程数据库、表、权限等方法,为了少带sqldmo的dll,现在改为直接用spt创建,下面是我已经写完工的部分,资源共享:)发上来供大家参考并请多多指教!谢谢!
parameters cservername,cuser,cpassword,cdatabase
sqldisconnect(0) &&断开所有连接
lsconn='driver=sql server;server='+cservername+';uid='+cuser+';pwd='+cpassword+';database=master'
lnconn=sqlstringconnect(lsconn) &&建立连接句柄
if lnconn>0
*!* 1. 建新数据库
sqlexec(lnconn,'select cast(filename as char(200)) sys_path from sysfiles','mycursor')
sqlpath=alltrim(left(mycursor.sys_path,rat('/',alltrim(mycursor.sys_path))))
wait window "正在创建 ["+cdatabase+"] 数据库,请稍候......" nowait
sqlexec(lnconn,"sp_databases","mycursor") &&列出服务器上的数据库
select mycursor
go top
locate for alltrim(upper(mycursor.database_name))==alltrim(upper(cdatabase))
if !found()
csql="create database "+alltrim(cdatabase)
csql=csql+" on "
csql=csql+" ( name = "+alltrim(cdatabase)+"_dat,"
csql=csql+" filename = '"+sqlpath+alltrim(cdatabase)+"_dat.mdf',"
csql=csql+" size = 4,"
csql=csql+" filegrowth = 2 )"
csql=csql+" log on "
csql=csql+" ( name = "+alltrim(cdatabase)+"_log,"
csql=csql+" filename = '"+sqlpath+alltrim(cdatabase)+"_log.ldf',"
csql=csql+" size = 2mb,"
csql=csql+" filegrowth = 2mb )"
if sqlexec(lnconn,csql)<=0
messagebox(cdatabase+' 数据库创建失败!',16,'information',3000)
sqldisconnect(0) &&断开所有连接
return
endif
else
if messagebox(cdatabase+' 数据库已经存在,继续吗?', 20 ,'information')=7
sqldisconnect(0) &&断开所有连接
return
endif
endif
sqldisconnect(0)
lsconn='driver=sql server;server='+cservername+';uid='+cuser+';pwd='+cpassword+';database='+cdatabase
lnconn=sqlstringconnect(lsconn) &&建立连接句柄
if lnconn<=0
messagebox(cdatabase+' 数据库连接失败!',16,'information',3000)
return
endif
sqltables(lnconn,"'table'","mycursor") &&列出数据表
*!*创建menuitem表
if !foundtable('menuitem')
csql='create table [dbo].[menuitem] ('
csql=csql+'[autoid] [int] identity (1, 1) not null ,'
csql=csql+'[menuid] [char] (9) not null constraint pk_menuitem primary key,'
csql=csql+'[menutype] [char] (1) not null ,'
csql=csql+'[menucaption] [varchar] (16) not null ,'
csql=csql+'[menucommand] [varchar] (40) null ,'
csql=csql+'[menumessage] [varchar] (40) null ,'
csql=csql+'[menupicture] [varchar] (40) null ,'
csql=csql+'[menukey] [varchar] (10) null ,'
csql=csql+'[menubase] [bit] not null )'
if sqlexec(lnconn,csql)<=0
messagebox('menuitem 表创建失败!',64,'infomation',2000)
else
=txtmenutodbf()
endif
endif
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。