2011-09-12 78 views
0

我正在使用VFPOLEDB連接到VFP數據庫(dbf文件的目錄)。Visual FoxPro中缺少表DB

連接後,我使用手動創建一個表:

create dbf critera(field_name c(30)) 

在這一點上,我確認新的DBF文件在數據庫目錄中創建。然後我嘗試查詢新表,它應該不返回任何行。

select * from criteria 

我出現以下錯誤:

File "criteria.dbf" does not exit. 

奇怪,不是嗎?

因此,我手動刪除DBF文件(VFPOLEDB不支持刪除),然後運行以下查詢。

create db criteria(field_name c(30)); select * from criteria 

並且沒有錯誤,沒有按預期返回結果。

什麼給?有什麼建議麼?

回答

1

首先,(可能是O型),你有

create dbf Critera (missing the "i") 

然後

select * from Criteria (has the "i") 

如果不是......你的連接字符串,你只是連接到.dbf文件將位於的PATH,或者您明確連接到路徑和數據庫。

如果只是一個路徑

string YourVFPConnectionString = 
    "Provider=VFPOLEDB.1;Data Source=c:\\SomePath\\WhereDataIs\\"; 

或與特定數據庫容器

string YourVFPConnectionString = 
    "Provider=VFPOLEDB.1;Data Source=c:\\SomePath\\WhereDataIs\\YourDatabase.dbc"; 

可能更容易只是所指向的目錄來進行測試。 VFP OleDB提供程序將考慮查詢任何表的根目錄與完整的.dbc(數據庫容器)的根目錄,這可以讓您訪問其他存儲過程等。

OleDb不支持「DROP TABLE」。您仍然可以通過通過OleDbCommand的ExecuteNonQuery()運行ERASE「Criteria.dbf」來刪除文件。至於最後一個,VFP不使用「;」因爲像其他SQL引擎之類的語句之間的中斷可以讓你一個接一個地發送一系列查詢。 「;」在VFP中被認爲是「這個命令在下一行繼續」,並且應該拋出一個異常,它不能夠處理它。