0

具体问题: VARCHARMAPPING=True 是否适用于 Visual FoxPro 的 Ado OleDB 连接?如果是这样,连接字符串应该是什么样子?

我们正在开发一个 Delphi 应用程序,它使用旧的可视化 foxpro 数据库的一部分作为基础。今天早上,我与数据库建立了一个工作连接,从所有意图和目的来看,它都做了正确的事情,但现在,不再是了。

起作用的是varcharmapping,即没有填充。

Delphi 2010,使用 ADOConnection、AdoQuery。使用 Microsoft Visual FoxPro 9.0 Sp2。如果有更新的请告诉我。

连接字符串如下所示:

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

我已经尝试了所有属性的所有排列(感觉很好),但无济于事。任何建议都非常感谢。

4

1 回答 1

1

SET VARCHARMAPPING命令用于确定 Visual Foxpro 如何在 Foxpro 应用程序中生成游标(与 ADO 记录集相似但非常不同)。此命令严格影响 Foxpro 游标,并且不受Visual FoxPro Ole DB 提供程序的支持

我相信最好的选择是修改您的 FoxPro 数据库以使用varchar数据类型作为列。此问题的原因是SQL Server 中的char 和 varchar数据类型之间存在相同的差异。

char 是固定宽度的列。如果记录中的数据没有完全填满列,则添加填充。这不适用于 varchar,它是一个可变长度字段,并且只分配所需的空间(即没有填充)。

更新 即使使用 varchar 数据类型,填充仍然可以发生。因此,出于兼容性原因,您应该始终修剪值。

于 2010-10-29T18:43:41.073 回答