簡體   English   中英

使用PHP中的Visual FoxPro OLE DB提供程序寫入VFP數據庫

[英]Writing to a VFP Database using the Visual FoxPro OLE DB Provider in PHP

我無法使用Visual Fox Pro OLE DB提供程序(vfpoledb.dll)在php中寫入VFP數據庫。 我沒有問題描述和回答的選擇語句訪問數據的問題:

php,odbc和vfp

但是,在寫作方面,我很難

Cannot update the cursor ''tablename'', since it is read-only.

我認為解決此問題的方法是,如msn文章中所述,在Open命令中包括Mode =“ ReadWrite” (也嘗試了Share Exclusive),例如:

$conn = new COM("ADODB.Connection");
$conn->Open('Provider="VFPOLEDB.1";Data Source="' . $filename . '";Mode="ReadWrite";');

但是,在執行如下語句時,我仍然收到相同的錯誤:

$up = $conn->Execute("UPDATE tablename SET fieldname='Testing' WHERE fieldname = 'somevalue'");

有什么想法,甚至可能嗎?
還有其他人喜歡包裝舊系統嗎?

該表是VFP數據庫的一部分嗎? 您是否檢查過.DBF或.DBC的文件屬性,以查看它們是否為只讀? 此錯誤通常意味着DBF或索引(CDX或IDX)被標記為只讀。

或者,您可能已執行SELECT * FROM TABLE INTO CURSOR MyCURSOR,這會使游標MyCURSOR變為只讀。 在這種情況下,您需要將READWRITE子句添加到SELECT語句中。

為了避免您遇到其他問題,我在前面提到的帖子中的回答特別提到了連接字符串。 由於您沒有顯示文件名變量值的值,而是以該變量的名稱OF命名,因此我假設它是您要更新的實際表的全名。 如果是這樣,這是不正確的。

為VFP進行連接時,您想連接到數據表所在的實際PATH,而不是實際的表名本身。 連接后,您可以查詢該PATH中的ANY表(如果需要,甚至可以查詢子文件夾)。

確保您的連接指向PATH,而不是實際的table.dbf參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM