VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

使用SPT建立資料庫(轉貼)

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期六 九月 27, 2003 2:03 am    文章主題: 使用SPT建立資料庫(轉貼) 引言回覆

使用SPT建立SQL資料庫
http://www.yafox.com/dispbbs.asp?BoardID=9&id=46&replyID=111095&star=1&skin=

****************************************
* 使用SPT建立SQL資料庫 *
* 1.0 2003.06.07 *
*    雅狐論壇 www.yafox.com     *
****************************************
*假?#93;已經連接上SQL伺服器,連接控制碼為Sql_Connect
SQL_DataBase="yafox" &&要建立的資料庫名稱
SQL_CommandStr="SELECT count(name) as cntdatabase FROM sysdatabases WHERE name=?SQL_DataBase"
=SQLEXEC(Sql_Connect,SQL_CommandStr,"SqlCurs")
IF SqlCurs.cntdatabase=0
WAIT "正在建立資料庫"+SQL_DataBase+",請稍候……" WINDOW NOWAIT
SQL_CommandStr="create database "+SQL_DataBase+" on (name='"+SQL_DataBase+"',filename='c:\"+SQL_DataBase+".mdf',size=50,maxsize=1024,filegrowth=50) "
SQL_CommandStr=SQL_CommandStr+"log on (name='"+SQL_DataBase+"_log',filename='c:\"+SQL_DataBase+".ldf',size=50,maxsize=1024,filegrowth=50)"
=SQLCOMMIT(Sql_Connect)
IF SQLEXEC(Sql_Connect,SQL_CommandStr)<0
WAIT CLEAR
MESSAGEBOX("創建資料庫"+SQL_DataBase+"失敗",16,"失敗")
ELSE
WAIT CLEAR
MESSAGEBOX("創建資料庫"+SQL_DataBase+"成功",16,"成功")
ENDIF
MESSAGEBOX("創建資料庫"+SQL_DataBase+"失敗",16,"失敗")
ELSE
MESSAGEBOX("資料庫"+SQL_DataBase+"已經存在",16,"重複")
ENDIF
****************************************


SQL_CommandStr="create database "+SQL_DataBase+" on (name='"+SQL_DataBase+"',filename='c:\"+SQL_DataBase+".mdf',size=50,maxsize=1024,filegrowth=50) "
SQL_CommandStr=SQL_CommandStr+"log on (name='"+SQL_DataBase+"_log',filename='c:\"+SQL_DataBase+".ldf',size=50,maxsize=1024,filegrowth=50)"
語句解釋:
name 資料庫的邏輯名稱
filename 資料庫的物理名稱及位置
size 初始大小 (M)
maxsize 最大限制 (M,可以忽略)
filegrowth 資料庫增量


*建立表 CodeUser 的命令如下:
SQL_CommandStr="create table CodeUser (userid nchar(4),username nchar(10),userpass nchar(24),uniqueid int identity,updatetime datetime)"
=SQLEXEC(Sql_Connect,SQL_CommandStr)

當然,在建立一個表之前,我們應該先查詢一下它是否已經存在於資料庫中,查詢命令如下:
SQL_CommandStr="SELECT count(id) as cntid FROM sysobjects WHERE name='CodeUser' and xtype='u'"
=SQLEXEC(Sql_Connect,SQL_CommandStr,"SqlCurs")
IF SqlCurs.cntid>0
MESSAGEBOX("表CodeUser已經存在",16,"重複")
ENDIF


*建立表 CodeUser 的INSERT, UPDATE的觸發器命令如下:
SQL_CommandStr="CREATE TRIGGER CodeUser_IU ON CodeUser FOR INSERT, UPDATE AS "+;
"update CodeUser set Updatetime=getdate() where uniqueid in (select uniqueid from inserted)"
=SQLEXEC(Sql_Connect,SQL_CommandStr)

此觸發器的功能是在增?#91;或者編輯過CodeUser表後,自己更新Updatetime欄位為系統當前時間用以記錄最後的更改時間
當然在建立觸發器之前,我們?#93;得先查詢一下它是否已經存在,查詢命令如下:
SQL_CommandStr="SELECT count(id) as cntid FROM sysobjects WHERE name='CodeUser_IU' and xtype='tr'"
=SQLEXEC(Sql_Connect,SQL_CommandStr,"SqlCurs")
IF SqlCurs.cntid>0
MESSAGEBOX("觸發器CodeUser_IU已經存在",16,"重複")
ENDIF

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作