通過SPT創(chuàng)建C-S數(shù)據(jù)庫方法

字號(hào):

曾經(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