曾經(jīng)用sqldmo創(chuàng)建遠(yuǎn)程數(shù)據(jù)庫、表、權(quán)限等方法,為了少帶sqldmo的dll,現(xiàn)在改為直接用spt創(chuàng)建,下面是我已經(jīng)寫完工的部分,資源共享:)發(fā)上來供大家參考并請(qǐng)多多指教!謝謝!
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. 建新數(shù)據(jù)庫
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 "正在創(chuàng)建 ["+cdatabase+"] 數(shù)據(jù)庫,請(qǐng)稍候......" nowait
sqlexec(lnconn,"sp_databases","mycursor") &&列出服務(wù)器上的數(shù)據(jù)庫
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+' 數(shù)據(jù)庫創(chuàng)建失??!',16,'information',3000)
sqldisconnect(0) &&斷開所有連接
return
endif
else
if messagebox(cdatabase+' 數(shù)據(jù)庫已經(jīng)存在,繼續(xù)嗎?', 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+' 數(shù)據(jù)庫連接失??!',16,'information',3000)
return
endif
sqltables(lnconn,"'table'","mycursor") &&列出數(shù)據(jù)表
*!*創(chuàng)建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 表創(chuàng)建失敗!',64,'infomation',2000)
else
=txtmenutodbf()
endif
endif
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. 建新數(shù)據(jù)庫
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 "正在創(chuàng)建 ["+cdatabase+"] 數(shù)據(jù)庫,請(qǐng)稍候......" nowait
sqlexec(lnconn,"sp_databases","mycursor") &&列出服務(wù)器上的數(shù)據(jù)庫
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+' 數(shù)據(jù)庫創(chuàng)建失??!',16,'information',3000)
sqldisconnect(0) &&斷開所有連接
return
endif
else
if messagebox(cdatabase+' 數(shù)據(jù)庫已經(jīng)存在,繼續(xù)嗎?', 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+' 數(shù)據(jù)庫連接失??!',16,'information',3000)
return
endif
sqltables(lnconn,"'table'","mycursor") &&列出數(shù)據(jù)表
*!*創(chuàng)建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 表創(chuàng)建失敗!',64,'infomation',2000)
else
=txtmenutodbf()
endif
endif