问题标签 [dbf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2008 浏览

ado.net - 如何使用 ADO.NET 读取包含错误定义的列数据类型的 DBF 文件?

我有几个需要能够查询的第三方生成的 DBF 文件。我遇到了麻烦,因为所有列类型都被定义为字符,但其中一些字段中的数据实际上包含二进制数据。如果我尝试使用 OleDbDataReader 将这些字段作为字符串或字符数组以外的任何内容读取,我会抛出 InvalidCastException,但我需要能够将它们作为二进制值读取,或者至少在读取它们之后进行转换/转换. 实际包含文本的列按预期返回。

例如,第一列定义为长度为 2 个字节的字符字段,但该字段包含一个 16 位整数。

我编写了以下测试代码来读取第一列并将其转换为适当的数据类型,但值不正确。

数据库的第一行在第一列中的值为 17365 (0x43D5)。运行以下代码,我最终得到的是 17215 (0x433F)。我很确定这与使用 ASCII 编码从数据读取器返回的字符串中获取字节有关,但我不确定将值转换为我需要的格式的另一种方法,除此之外编写我自己的 DBF 阅读器并完全绕过 ADO.NET,除非我绝对必须这样做,否则我不想这样做。任何帮助将不胜感激。

0 投票
1 回答
2432 浏览

sql - 使用 php 更新 Visual foxpro DBF

我正在使用 php 使用 ADO COM 更新 VFP 9.0 下的一些表。

在我指定任何Where子句之前,我可以选择和更新 DBF。
当我在查询中添加 where 子句时,它只是返回或更新 0 行。

结果:

代码 2:使用 Where 子句

结果:

ID 列是上表中的键。

我对 VFP 比较陌生。我不确定这是 Visual Foxpro 设置还是其他阻止更新或选择是否有选择地进行的设置。

0 投票
1 回答
758 浏览

db2 - 如何将表复制到 DB2 DPF 实例中的所有节点?

我有一个 dpf 实例,其中包含一些已分区的大表和一些未分区的小表。出于性能原因,我希望小表完全存在于分区的每个节点上。如何让 db2 将这些小表完全复制到每个节点?

0 投票
2 回答
769 浏览

c# - 如何在 C# 中创建的 .dbf 表中保留列顺序?

我正在尝试使用 Visual C# 创建一个 .dbf 表,因为我需要它来将数据导入另一个应用程序。为此,我需要列顺序完全正确,否则该应用程序将不接受该表。到目前为止它工作正常,但最近我不得不对表的结构进行一些更改,并且我在 CREATE 语句中的确切位置添加了列。我遇到的问题是,当我在使用 Visual Fox Pro 创建后打开表时,新列位于表的末尾,而不是我放置它们的位置。

我的代码如下:

CNP_COPIL、DATA_ACORD 和 LOC_PRES 等列是一些新列,并且总是放在最后,即使我在 Visual Fox Pro 中执行 CREATE COMMAND

我还可以提到我每次都创建一个空表并用数据填充它,我不做改变表,因为我不需要。每个月都有一张新桌子。

而且我似乎不明白为什么它将“新列”放在最后,即使该表是新表并且我已从该位置删除了所有以前的表

0 投票
4 回答
39042 浏览

sql - 如何从 DBF 文件转到 SQL Server 2008?

我有一个使用 DBF 文件的应用程序,我需要将它们导入 SQL Server 2008。但是,我还需要在此过程中修改一些数据,并且一些列将被添加到表中,而其他列将被弃用。

到目前为止,我正在使用 DBF -> Access -> MS Migration Assistant -> SQL Server 2008。但我认为必须有更好的方法来处理它。我想远离迁移助手,因为它不允许您在导入数据时修改数据。

0 投票
2 回答
6195 浏览

c# - 当文件路径/名称有空间时,使用 System.Data.Odbc.OdbcConnection 查询 DBF 文件

我正在尝试使用 System.Data.Odbc.OdbcConnection 查询 DBF 文件。当文件中没有空格时它可以正常工作,但是如果文件路径或名称中有一个空格。

我正在使用以下代码:

oConn = new System.Data.Odbc.OdbcConnection(); oConn.ConnectionString = "Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=NA;Exclusive=No; Collat​​e=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";

oCmd.CommandText = "SELECT * FROM C:\test 2\12345678.dbf";

命令文本不是硬编码的。为了简单起见,我只是以这种方式包含它。该应用程序设置为允许用户选择一个 DBF 文件并让它显示它。我无法控制用户存储 DBF 文件的位置,并且不想让他们记住不要在文件名/路径中放置空格。

如何转义文件名/路径中的空格?

0 投票
2 回答
1504 浏览

language-agnostic - 如何以不支持 utf-8 的格式存储 unicode 数据

好的,这是另一个字符编码问题,表明我对 Unicode 的一切一无所知。

我正在从 Microsoft Excel.xls文件中读取数据,并将其存储在 ESRI shapefiles.shp中。对于 Excel > 5.0 的版本,excel 文件中的文本存储为 Unicode。但是,Unicode(特别UTF-8是对 shapefile 的支持是不一致的,因此我认为我根本不应该使用它。但是,Shapefile 确实支持老式代码页。

在必须将 Unicode 字符串转换为未知但特定代码页中的字符串的情况下,最佳实践是什么?

据我了解,Unicode 字符串可以包含来自多个“代码页”的字符。因此,我假设我必须以某种方式估计要使用的“最佳”代码页,然后将所有不受支持的字符转换为该代码页中最接近的近似值(或 dreaded ?)。这是通常的做法吗?

我绝对可以使用的不仅仅是系统代码页。因为.shp文件使用.dbf文件来存储它们的属性数据,所以至少.dbf应该支持格式指定的所有代码页(参见xBase 格式说明)。支持的代码页有: DOS USA, DOS Multilingual, Windows ANSI, Standard Macintosh, EE MS-DOS, Nordic MS-DOS, Russian MS-DOS, Icelandic MS-DOS, Kamenicky (Czech) MS-DOS, Mazovia (Polish) MS-DOS, Greek MS-DOS (437G), Turkish MS-DOS, Russian Macintosh, Eastern European Macintosh, Greek Macintosh, Windows EE, Russian Windows, Turkish Windows, Greek Windows

此外,一些应用程序支持使用*.cpg指定要使用的其他代码页的文件(尽管我理解对 的支持utf-8,并且我怀疑许多其他代码页是有限的)。

因为我正在尝试开发一个通用工具,所以我不能假设.xls文件中 Unicode 的内容。

0 投票
1 回答
674 浏览

c# - 从 C# 通过 OLEDB 执行更新时出错

我正在使用 OLEDB 从 c# 更新 .dbf 数据库中的数据。

我在 ExecuteNonQuery 上收到错误:System.Data.OleDb.OleDbException {"Undefined function 'replace' in expression."}。

如何以最少的更改完成这项工作,我需要在许多文件中用单引号替换双引号,所以我必须自动化这个过程。

我应该为 .dbf 数据库尝试 ODBC 还是其他方式?

请帮忙!

0 投票
4 回答
7355 浏览

.net - 从 C# 处理 .dbf 的最佳方式

我可以使用什么数据提供程序从 C# 更新 .dbf 文件?

我尝试了几个不同的 .dbf 提供程序来创建数据源,但我收到如下消息:“错误消息:错误 HYC00 Microsoft ODBC dBase 驱动程序可选功能未实现。”

或者,当我使用更新函数生成数据集和数据适配器时,我得到:“当传递带有修改行的 DataRow 集合时,更新需要有效的 UpdateCommand。”

如果有人知道一些从 C# 处理 .dbf 的方法并进行大量更新,请提供帮助。当我尝试逐一更新行时,速度太慢了,因为提供者在搜索大的 .dbf 文件时会浪费太多时间。也许有一种方法可以自动构建索引并且数据源知道使用它?

另一种方法是将所有内容加载到数据集之类的内容中,并在所有更改完成后进行更新,但更新部分目前不起作用。

请帮忙!

0 投票
2 回答
6054 浏览

dbf - 通过读取初始 .DBF 字节可以采用哪种标头格式?

关于 .DBF 文件的第一个字节以及如何检测使用的 xbase 版本(即文件其余部分的格式),我能编译的最全面的列表是:

通过读取初始 .DBF 字节可以采用哪种标头格式?(即,该文件使用版本 2 标头、版本 3 到 5 标头还是版本 7 标头?)目前还不清楚最好的逻辑是什么……