2014-02-27 100 views
0

我設法將.dbc文件中的錶鏈接到ms訪問。如何將foxpro dbf文件提交到dbc中?

問題是,table1.dbf是有點鎖定,我不能修改它,所以我複製了整個數據,併爲它做了一個表。現在,我可以自由更新表格。更新一些行後,我將它導出到一個dbf文件並替換原來的'table1.dbf'。問題是,我打開程序時,它顯示以下內容:

Table 'table1.dbf' is not marked as belonging to the 'dbases' database. 
Would you like to create the back link to mark it? 

我明白,你必須提交.dbf文件,然後才能使用它。有沒有辦法在不使用foxpro的情況下提交新的'table1.dbf'?我設法使用視覺工作室,但找不到教程如何做到這一點。

+0

有關這個的任何想法?我被困住了。我想更新數據庫中的值,但無法通過這個更遠的地方。 – mmr

回答

0

你不需要在這裏「提交」這個表 - 這與FoxPro的緩衝機制有關,並且不對這裏的錯誤負責。

你遇到的是FoxPro攻擊舊版xBase標準以允許「數據庫」的方式的怪癖。 DBC本身是一個表,其中列出了一些其他表的名稱和字段,以及一些特定於DBC的項目,如本地視圖和whatnot。要添加一個冗餘檢查,每個表的標題會被額外編輯以包含一個返回到DBC的相對路徑。

如果缺少該路徑,FoxPro將顯示您記下的消息。單擊「是」應讓FoxPro修改您的表格,以便您不再有問題。


順便說一句,如果你沒有Visual FoxPro和你的應用程序不包含更新功能,你有兩個選擇。

1:對於非常簡單的編輯,您可以在下降文本編輯器(我用NotePad ++完成)中打開dbf並手動進行更正。只要你生成的行和字段仍然是預期的寬度,FoxPro甚至不會在乎你是否進行了更改。當然,這是容易出錯,所以備份之前,你嘗試它,不要嘗試任何不平凡的東西。

2:安裝Microsoft OLE DB Provider for Visual FoxPro並讓提供商管理您的FoxPro數據。而不是依賴Access或Excel即將刪除的功能來編輯大多數與FoxPro兼容的DBF,您可以直接連接並自行執行大多數DDL和DML任務。

+0

如何修改(.DBC)以添加剛剛創建的表格?我已經在Visual Studio中建立連接了?我是否需要運行查詢來添加.dbf? – mmr

+0

好吧,我已經明白了。非常感謝你。 :) – mmr

+0

(對於那些可能發生這種情況的mmr,您只需連接到OLE DB提供程序中的DBC,然後發出FoxPro的本機命令,如ADD TABLE。) – DougM

0

首先,你能否確認你是否有Visual Foxpro與表和數據庫容器一起工作?

根據表結構的不同,您顯然陷入了一個並不完美但不完全丟失的狀態。空閒表(不是數據庫容器的一部分 - .DBC)只允許列名最長爲10個字符。如果是.DBC的一部分,那麼列名可以更長。無論如何,當一個表最初是.dbc的一部分時,單個文件頭將加上.dbc引用,以便在打開表時自動打開它。

它聽起來像什麼,是當你打開數據庫容器並嘗試打開文件時,它沒有找到標題鏈接並詢問如何解決它。反向鏈接的唯一方法是通過單獨打開文件並明確回答Yes,添加後面的鏈接。

就引用來自Access的表而言,當您創建連接字符串時,它應該指向表所在的路徑,而不是指定的表。如果你正在使用數據庫容器,它應該在通過數據提供者訪問文件時自動打開。您還可以連接,但路徑應包含數據庫容器的.DBC引用。

希望這會有所幫助,如果您有任何後續問題,我會密切關注。