ASP對FoxPro自由表 DBF檔案 的操作

2021-04-12 14:57:51 字數 1987 閱讀 1240

tag

aspfoxpro

dbf資料庫

一、問題的提出

經常看到網上有朋友問asp對foxpro庫表(*.dbf)的操作問題,現實中確有許多應用軟體使用dbf表,如何在網路環境中使用這些資料,使很多朋友一籌莫展。

本人在乙個小專案中也遇到這個問題,通過查閱資料,多次試驗,初步解決了這個問題,寫出來與大家分享。

本文試**決以下問題:

1. asp聯接由foxpro 生成的自由表(*.dbf檔案)

2. 將多種型別的資料及圖形檔案同時存入dbf表中

(示例程式可從http://www.netop.cc/downloads/dbf.rar得到)

二、環境

windows2000 + iis5.0 + ie6.0(sp1)

dbf檔案為microsoft visual foxpro 6.0 生成的自由表(非dbc庫)

2. 在sql語句中宣告表名

可以用[表名]或[表名.副檔名]的形式在sql語句中宣告要操作的表名,如表檔名為t1.dbf,sql語句為:

select * from [t1]或select * from [t1.dbf]

3. 各種型別資料的入庫操作

dbf支援的資料型別不是很多,其中值得注意是的date(日期型)、memo(備註型)、general(通用型)。在此著重說明一下data型資料,memo及gen型在儲存圖形檔案時用到,稍後說明。

我一般採用兩種方式進行寫庫操作,一種是使用insert語句,一種是使用addnew方法,對於dbf表,這兩種方式略有差別。

使用insert語句時,要注意date型資料的書寫格式為,分界符不同於access的#及sql server的'。具體sql語句為:

insert into [t1.dbf] (name,birthday) values ('myname',)

在使用addnew方法時,我原先使用的**為:

rst.open "[t1]",conn,0,3

rst.addnew

rst(0).value = "myname"

rst(1).value =

rst.update

rst.close

在對sql server及access操作時都沒有問題,但是對dbf檔案操作時出現了問題。經過試驗,終於找到了正確的方法:

sql = "select * from t1"

rst.open sql,conn,0,3

rst.addnew

rst(0).value = "myname"

rst(1).value =

rst.update

rst.close

請注意以上兩段**的差別,主要在sql語句上。前面說過,在sql語句中,可以用[表名]或[表名.dbf]的方式宣告表檔案,但在使用addnew方法時,表名不可帶副檔名,而且不可加方括號,否則會提示「非簡單表名,不可更新」 。

5. 資料的刪除

可以使用delete語句將資料刪除,但是刪除後開啟表檔案,發現資料只是做了刪除標記,並未真正從表中刪除。在foxpro中,要使用pack命令將資料永久刪除。查了些資料,說是vb無法實現pack操作,那vbscript當然更無法實現了。一般的解決辦法是每隔一段時間,將表中的資料(當然是未做刪除標記的)匯入一新表,刪除原表,再將新錶改名為原表名。

6. 資料和同時入庫

這個問題不屬於本文要討論的範圍,網上也有很多文章給出了解決辦法,這裡順帶說一下。

我是利用「化境」無元件上傳程式實現的這個功能。有些朋友會問,「化境」上傳是寫成檔案,沒有入庫的方法啊。不錯,但是稍加改動,可以得到的二進位制資料,然後入庫即可。我的示例中,化境程式改動的部分都做了注釋,請參考。

四、結語

本文主要討論asp對dbf自由表的操作,如果是dbc庫,示例中的inc/conn.asp中給出了相應的聯接字串。

至此,相信朋友們對dbf表的操作有了大概的了解,結合我的示例,相信大家可以開發出更多的功能。

good luck!

ora32773 不支援對小檔案表空間的操作

1 新建資料庫時系統表空間設定的太大,想收縮表空間大小,執行如下語句報錯 ora32773 不支援對小檔案表空間的操作。alter tablespace system resize 1024m 2 在確認收縮表空間後的大小大於資料量大小後,執行如下操作收縮表空間 select t.file id,t...

ISAPI篩選器及對ASP原始檔的保護

isapi篩選器及對asp原始檔的保護 劉玉林曹二堂 河北經貿大學 摘要 本文介紹了利用 isapi 篩選器保護 asp原始檔的方法,並給出乙個例項。關鍵字iis,isapi asp 保護 1引言 asp作為一種網路開發的指令碼語言,由於程式設計簡單 功能強大 得到了廣泛的應用。然而,由於 asp指...

ISAPI篩選器及對ASP原始檔的保護

劉玉林 曹二堂 河北經貿大學 摘要 本文介紹了利用 isapi 篩選器保護 asp原始檔的方法,並給出乙個例項。關鍵字iis isapi asp 保護 1 引言 asp作為一種網路開發的指令碼語言,由於程式設計簡單 功能強大,得到了廣泛的應用。然而,由於asp指令碼是採用明文 plain text ...