2010-09-01 79 views
0

具體問題: VARCHARMAPPING = True對Visual FoxPro的Ado OleDB連接有效嗎?如果是的話連接字符串應該如何?ADO OleDB Visual Foxpro

我們正在開發一個Delphi應用程序,該應用程序使用舊版Visual FoxPro數據庫的一部分作爲基礎。今天早上,我與數據庫建立了聯繫,爲了所有的意圖和目的做了正確的事情,但現在不再。

確實工作的東西是變化,即,沒有填充。

Delphi 2010,使用ADOConnection,AdoQuery。使用Microsoft Visual FoxPro 9.0 Sp2。如果有新的請告訴我。

ConnectionString中看起來是這樣的:

'Provider=VFPOLEDB.1;Data Source=C:\PROGRAMDATA\Folder\DataFolder;Collating Sequence=SWEFIN;DSN="";VARCHARMAPPING=True;' 

我已經想盡排列(也感覺它)有所有的屬性,但無濟於事。任何建議非常感謝。

回答

1

SET VARCHARMAPPING命令用於確定Visual Foxpro在Foxpro應用程序中如何生成遊標(與ADO記錄集類似但非常不同)。該命令嚴格影響Foxpro遊標,並不是supported through the Visual FoxPro Ole DB provider

我相信最好的選擇是修改您的FoxPro數據庫以使用varchar數據類型的列。此問題的原因是SQL Server中char and varchar數據類型的差異。

char是一個固定寬度的列。如果記錄中的數據沒有完全填充列,則會添加填充。對於varchar來說,這是不正確的,它是一個可變長度字段,並且只根據需要分配足夠多的空間(即沒有填充)。

更新即使使用varchar數據類型,填充can still occur。所以,對於compatibility reasons,你應該總是修整值。

+0

謝謝。它或多或少地證實了我的懷疑。沒有什麼幫助,但至少在修整所有數據時讓我感覺更好,因爲知道沒有別的辦法。 – lungic 2010-11-01 12:31:44