for each tdf in backup_db.tabledefs
if (tdf.attributes and dbsystemobject)=0 then
//條件成立,說明該表是用戶定義的表,可以鏈接,否則跳過
end if
next
③ 使用create_table()對每個表創(chuàng)建與之對應(yīng)的備份表,取名可遵循如下原則, 若原表叫table_name, 則備份表叫b_table_name。
④ 將table_name表中的所有記錄復(fù)制到b_table_name中。
⑤從備份庫刪除對sql數(shù)據(jù)表的鏈接。
3、程序原碼
采用微軟dao (data access object) 數(shù)據(jù)模型, 打開access 本地數(shù)據(jù)庫, 并連接一個外部odbc數(shù)據(jù)表, 拷貝該表結(jié)構(gòu)完成, 有以下過程塊copystru :
private sub copystru ()
set dbstemp = wrkjet. opendatabase (tagfilname)// 鏈接表的過程
for i = 0 to tabn - 1
set tdflinked = dbstemp. createtabledef (“l(fā)inktab”)
tdflinked. connect = “odbc; database = xgsbgsys ; uid =
sa ; pwd = ; dsn = xgsdb ;”
tdflinked. sourcetablename = tabname (i)
dbstemp. tabledefs. append tdflinked
set temp tab = dbstemp. createtabledef ()
temp tab. name = tabname (i)
//創(chuàng)建新表的過程
for each fld in tdflinked. fields
set newfil = temp tab. createfield (fld. name , fld. type ,fld. size)
newfil. ordinalposition = fld. ordinalposition
newfil. required = fld. required
temp tab. fields. append newfil
next
//創(chuàng)建索引
for each idx in tdflinked. indexes
set newidx = temp tab. createindex ()
with newidx
name = tabname (i) & ” x”
fields = idx. fields
unique = idx. unique
primary = idx. primary
end with
temp tab. indexes. append newidx
next
dbstemp. tabledefs. append temp tab
set temp tab = nothing
dbstemp. tabledefs. delete ”linktab”
next i
dbstemp. close
set dbstemp = nothing
wrkjet. close
set wrkjet = nothing
end sub
end sub
中國最大的web開發(fā)資源網(wǎng)站及技術(shù)社區(qū),
新聞熱點
疑難解答
圖片精選