2010-09-01 78 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