问题标签 [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 回答
2828 浏览

asp-classic - 从经典 ASP 3.0 访问和操作 DBF

通常我使用 SQL Server 作为我的项目的数据库,但我的一个项目处理使用 .dbf 格式作为数据库的 ESRI shapefile(我认为它是 DBASE III 或 IV 格式)。

我想创建一些 Web 界面来修改 dbf 上已经存在的值,例如,如果街道名称不正确或多个地方的地址,客户可以编辑它。

过去我已经运行了 Classic ASP 3.0 应用程序,我想集成新功能。

我的问题:
1. 什么是与 DBF 交互的连接字符串(DSN-less 更可取)?
2. 谁能给我一些检索/更新记录的例子?

我已经读过这个:
http ://www.intermedia.net/support/kb/default.asp?id=761和
http://www.motobit.com/tips/detpg_asp-dbf-database/

没有工作,目前我的代码是这样的(不工作):

错误是

我很确定“taspat_ka_jawa”已经在“D:\digimap”中


解决
了我对 OleDB Provider 使用 Advantage ADO,它工作正常,我现在可以查看/编辑/删除记录
http://www.sybase.com/products/databasemanagement/advantagedatabaseserver/ole-db-provider

谢谢,德尔斯

0 投票
5 回答
6099 浏览

size - 更改 DBF 字段大小

我现在使用 ESRI shapefile 格式,但在更改/编辑数据库字段大小时遇到​​了一些问题。我创建了一个长度/大小为 200 的字段,现在我希望它只有 80 个长度/大小(空间和其他改进)。

但是我不能再编辑字段大小了:(有人可以指出如何更改字段大小吗?

顺便说一句,我尝试过可以编辑字段大小的 DBF Explorer 等实用程序,但是当我更改字符/文本字段的字段大小时,浮点/数字字段上的数据会被删除:(
DBF Explorer

PS:ESRI 数据库使用 .dbf 扩展名,我认为它是 DBASE III plus 或 DBASE IV 格式

0 投票
5 回答
4639 浏览

c# - 如何在长名称 dbf 文件上使用 GetOleDbSchemaTable 方法

作为我在 C# 中工作的项目的一部分,我需要读取 .dbf 文件。我要做的第一件事是从文件中获取模式表。只要文件名(不带扩展名)不超过 8 个字符,我的代码就可以工作。

例如,假设我有一个名为 MyLongFilename.dbf 的文件。以下代码不起作用;它引发以下异常:“Microsoft Jet 数据库引擎找不到对象 'MyLongFilename'。确保对象存在,并且正确拼写其名称和路径名。”</p>

为了克服这个异常,下一步是使用 OldDbConnection 喜欢的名称('MyLongF~1' 而不是 'MyLongFilename'),这会导致:

这确实成功返回了 OleDbConnection。现在要获取架构表,我尝试以下操作:

这将返回一个没有行的 DataTable。如果我将文件名重命名为 8 个或更少的字符,则此代码有效,并且我为数据库中的每个字段返回一行。

使用长文件名,我知道返回的连接是有效的,因为我可以使用它来填充 DataSet,如下所示:

这给了我一个 DataSet,其中包含一个 DataTable,其中包含 dbf 文件中的所有数据。

所以问题是我怎样才能得到长命名的 dbf 文件的模式表?当然,我可以通过重命名/复制文件来解决这个问题,但我不想这样做。我也不想用前 1 条记录填充 DataSet 并从列中推断出架构。

0 投票
4 回答
1835 浏览

fortran - 从 gfortran 读取 .dbf 文件的最简单方法是什么

我正在使用 gfortran,我需要编写一个从与 ESRI Shapefile 关联的 .dbf 文件中读取记录的函数。我应该能够阅读的文件可从互联网http://diss.rm.ingv.it/diss/DISS_3.0.4.shp.zip

file命令对文件格式的意见是:

感谢您的建议

0 投票
1 回答
5099 浏览

c# - C# 中的 ODBC .DBF 文件

我在使用 .dbf 文件时遇到了很多麻烦。我有一个用 C# 编写的应用程序,它从 .DBF 文件中读取,然后将它们导出到另一个数据库。我尝试使用 Microsoft dBase 驱动程序,但它没有读取我需要的所有 .DBF 文件,这意味着我只能从五个 .DBF 文件中的两个中检索数据,Visual Studio 告诉我其他 .DBF 文件不存在,它一直说我的输入字符串太大。有一些 Microsoft Visual Fox Pro 驱动程序,但每次我选择其中一个时,Visual Studio 都会告诉我它无法建立连接。最糟糕的是,这个应用程序将在我无权访问的客户端机器上使用。如何保留 ODBC 数据源,以便我的应用程序可以在其他人的机器上运行?我对.DBFs非常陌生,

0 投票
2 回答
3454 浏览

c# - 使用 Visual Fox Pro OleDb

我正在尝试使用 C# 将 DBF 文件中的数据提取到我的程序中。我正在使用 Visual FoxPro OLE DB 提供程序。它在我的本地机器上运行良好,但我想将我的程序打包成客户端可以使用的 dll。问题是当他们从他们的机器上运行程序时,它说 Visual FoxPro OLE DB Provider 没有在他们的机器上注册。有没有什么方法可以在不让客户端在他们的机器上安装 Visual FoxPro OLE DB Provider 的情况下使用它?

0 投票
3 回答
1868 浏览

oledb - DBF 大字符字段

我有一个我相信是用 Clipper 创建的数据库文件,但不能肯定地说(我有 .ntx 文件用于索引,我知道这是 Clipper 使用的)。我正在尝试创建一个 C# 应用程序,它将使用 System.Data.OleDB 命名空间读取此数据库。

在大多数情况下,我可以成功阅读表格的内容,但有一个字段我不能。此字段称为 CTRLNUMS,定义为 CHAR(750)。我已经阅读了通过 Google 搜索找到的各种文章,这些文章建议必须通过与正常分配给字符串变量不同的过程来读取大于 255 个字符的字段。到目前为止,我还没有在我找到的方法上取得成功。

以下是我用来读取表格的示例代码片段,其中包括我用来读取 CTRLNUMS 字段的两个选项。即使字段中存储了 750 个字符,这两个选项都导致返回 238 个字符。

这是我的连接字符串:

提供者=Microsoft.Jet.OLEDB.4.0;数据源=c:\datadir;扩展属性=DBASE IV;

谁能告诉我从 DBF 文件中读取更大字段的秘密?

0 投票
1 回答
1112 浏览

sql-server-2005 - SSIS 数据流更改记录顺序

我以为我在SQL order by 和 left outer join doesn't have correct order中问了一个类似的问题,但这略有不同。我正在使用 SSIS 和标准数据流从另一个 SQL-Server 2005 数据库获取数据。我得到的记录的顺序与源表中的顺序不同(实际上是一个视图)。在较旧的 DTS 中,顺序不会改变。

源或目标表或视图没有排序,通常,我认为如果顺序很重要,那么会指定它。我可能必须让某人指定一个顺序,我们可以继续进行,但我们正在处理历史形状文件,如果属性的顺序发生变化,那么形状指向错误的数据。

数据在导入时更改顺序是否有原因?有解决办法吗?

这就是顺序很重要的原因。它适用于地图应用程序,并且属性和形状必须匹配。如果订单发生变化,则项目将无法正确匹配。不幸的是,我无法确定数据的任何顺序,并且我怀疑之前的编码人员假定了一致的顺序,而这才是最重要的。使用 SSIS 的顺序不是相同的顺序,并且它永远不会显式设置。

0 投票
3 回答
22717 浏览

sql-server - 将 DBF 文件导入 Sql Server

我需要一点帮助来解决这个问题,因为我是存储过程的新手。我正在尝试使用此存储过程将 .DBF 表导入 Sql Server 2008。

我收到此错误。OLE DB 提供程序“vfpoledb”尚未注册。这不是真的,我已经安装了它,它在我的其他应用程序中运行良好。

我也尝试使用此提供程序以这种方式运行它,但我收到此错误消息无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。

创建此存储过程的最简单方法是什么?我希望它是一个存储过程,而不是向导或程序,所以请不要给我任何程序。

0 投票
4 回答
5000 浏览

csv - 是否有任何免费工具可以将超过 65000 个寄存器的文件从 DBF 格式转换为 CSV?

我需要将一个非常大的文件从 DBF 格式转换为 CSV 格式。我已经尝试使用 Microsoft Excel 来完成这项工作,但问题是当我打开和导出文件时,我看不到超过 65500 个寄存器。

Microsoft Access 也无法打开该文件。

我在谷歌上找到了一些共享软件工具,搜索“DBF to CSV”。您是否尝试过其中任何一个非常大的文件?

此外,任何可以导出到 mysql 或 postgresql 数据库格式的解决方案都将受到欢迎。

提前感谢您的回复,最好的问候,