2014-05-19 256 views
0

我在MFC中编程并使用ADO连接到FoxPro .dbf文件。我正在读取文件并制作数据库文件的副本。在插入列类型为'C'的数据即字符(尽管其长度为10 byte.value是“0002”)我有问题。在字段中插入“0”。我可以将Column类型从'Character'更改为'Memo',它插入正确的值但将数据保留在.FPT文件中。我需要将数据插入到相同的.dbf文件中.Any帮助将不胜感激。如何在foxpro dbf文件中插入列类型为“字符”的值。

+0

你可以显示你的插入语句吗?另外,值是什么样子,你插入?如果该列只有10个字符,并且该值有超过10个前导空格,那么这可能是问题所在?尝试将值放入ALLTRIM()函数中,或者将字符列放大一些,大概为200个字符。 – Jerry

+0

如果直接复制,使用文件系统复制DBF/CDX/FPT文件会不会更容易? –

+0

@jerry。我使用记录集的AddNew()函数,它使用两个参数,分别是字段名称和数据的COleSafeArray; –

回答

1

默认情况下,在FoxPro中C类型列具有1的长度如果使用标准的SQL命令(ALTER TABLE)或类似SQL equilvalents(CREATE CURSOR),则需要改变一个简单的“C”的数据类型以“C(10)”。

如果您是使用FoxPro的“SELECT INTO”语法创建数据副本,请注意库会基于第一行推断每列的大小。在这种情况下,您希望将“field1”设置为C(10),但不要将该列定义为field1`,而是将CAST(field1作为C(10))作为简单的field1' but rather

+0

是的,我已经做到了,它工作。感谢你的回复 –