我使用JET oleDb 4.0创建DBF文件,但数字字段总是最终为(20.5)大小。这是我在网上看到的一个已知问题。很多人建议使用我尝试过的Visual FoxPro oleDb,但我需要在ArcMap中打开DBF文件,我会收到有关错误字段类型的错误。我猜不支持文件格式。如果我在FoxPro中打开使用FoxPro oledb创建的DBF并以DBase IV格式导出它,那么我可以在ArcMap中打开它。
但是当我创建它时,我已经使用了"扩展属性= dBase IV"选项,它似乎根本没有做任何事情。
我必须找到一种方法来获得DBASE IV格式的正确字段大小。有人能帮助我吗?
这是我的连接字符串:
Provider = Microsoft.Jet.OLEDB.4.0;数据源= {0};扩展属性= dBase IV; 这使得总是在20.5大小的数字
Provider = vfpoledb;数据源= {0};整理顺序=一般;扩展属性= dBase IV; 这使得与ArcMap不兼容的DBF
答案 0 :(得分:1)
它使用VFP OleDB提供程序,只是忽略CODEPAGE引用的上下文。 create table语法类似,您可以根据需要定义数字字段。下一个关键部分是在章节中使用VFPScript ......
string vfpScript = @"use MyTest1
Copy to MyTest2 type foxplus";
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "ExecScript";
command.Parameters.Add("myScript", OleDbType.Char).Value = vfpScript;
command.ExecuteNonQuery();
这将.dbf文件从VFP普通文件头转换为dBASE兼容(早期FoxPro)文件头,它应该与您需要的兼容。