标签: dbf

读/写xBASE(DBASE 3-5/DBF)文件

有没有什么好的库可以用java或任何其他语言读/写DBF文件?

java database legacy dbf

5
推荐指数
1
解决办法
1万
查看次数

批量插入Dbase(.dbf)文件的有效方法

我目前正在使用OleDBCommand.ExecuteNonQuery(重复调用)一次从源DataTable向dbase文件(*.dbf)中插入多达350,000行.我正在重用OleDbCommand对象和OleDbParameters来设置每次调用insert语句时要插入的值.插入350,000行目前占用我的程序约45分钟.

有没有更有效的方法来做到这一点?是否存在与Dbase(*.dbf)文件中的SQL Server中使用的批量插入选项类似的内容?

.net oledb dbf bulkinsert dbase

5
推荐指数
1
解决办法
4366
查看次数

如何在java中查询DBF文件

我有一个相当大的 DBF 文件,大约 40 兆,我需要能够查询它。现在我正在读取 DBF(它只是表格文本)到 h2 数据库中并查询 h2 数据库。这可行,但看起来……很愚蠢。我一直在寻找 DBF 的 4 类 JDBC 驱动程序,但没有找到任何运气。执行此操作的正确方法是什么?

java dbf jdbc

5
推荐指数
1
解决办法
2万
查看次数

如何查询where和between子句中的DBF(dbase)文件日期类型字段

我有一个DBF文件,正在尝试从C#代码读取它。我可以成功读取文件而无需对varchar类型字段应用任何条件或条件。我的问题是我必须从Date字段(类型:date)中过滤记录。我尝试过以下方法

SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 12:00:00 AM and 2/20/2006 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)

上面给出了语法错误:缺少运算符

SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between '2/16/2006 12:00:00 AM' and '2/20/2006 12:00:00 AM'
Run Code Online (Sandbox Code Playgroud)

上面给出了数据类型不匹配错误

SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 and 2/20/2006
Run Code Online (Sandbox Code Playgroud)

上面的方法不会引发任何异常,但是尽管有匹配的记录,但不会返回任何记录。

where子句也发生相同的情况。我该怎么做才能过滤范围内的记录

我正在使用以下代码阅读

OdbcCommand cmd = new OdbcCommand();
OdbcDataAdapter da = new OdbcDataAdapter();
DataTable dt = new DataTable();

using (OdbcConnection connection = new OdbcConnection(connstring))
{
   connection.Open();
   cmd = new OdbcCommand(@"SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 12:00:00 AM …
Run Code Online (Sandbox Code Playgroud)

c# sql dbf dbase

5
推荐指数
1
解决办法
1万
查看次数

使用pyodbc读取DBF文件

在一个项目中,我需要从Visual FoxPro数据库中提取数据,该数据库存储在dbf文件中,我有一个数据目录,需要考虑539个文件,每个文件代表一个数据库表,所以我一直在做一些测试和我的代码是这样的:

import pyodbc

connection = pyodbc.connect("Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=P:\\Data;Exclusive=No;Collate=Machine;NULL=No;DELETED=Yes")
tables = connection.cursor().tables()
for _ in tables:
    print _
Run Code Online (Sandbox Code Playgroud)

这打印只有15个表,没有明显的模式,总是相同的15个表,我认为这是因为其余的表都是空的但我检查了它,列表上的一些表(dbf文件)也是空的,然后,我认为这是一个权限问题,但所有文件都有相同的权限结构,所以,我不知道这里发生了什么.

任何光?

编辑: 它没有说明输出,它列出的表不是第一个或类似的东西

python database dbf pyodbc

5
推荐指数
1
解决办法
5102
查看次数

在Python中打开和搜索dBase III(DBF)数据库

我正在寻找在python中开发一个需要搜索dBase III数据库文件(DBF)的应用程序.我一直在寻找一段时间,但我找不到任何关于如何做到这一点的好文档.我尝试过使用DBFpy,但找不到有关如何索引/搜索列的任何文档.我也尝试按照这个帖子中的建议,但显然我的DBF文件是"关闭的".我查看了此处列出的调用,但无法确定如何"打开"该文件.任何人都可以推荐一个python模块来处理带有文档的DBF文件,或者指导我如何正确使用其他DBF python模块.谢谢!

python dbf

5
推荐指数
1
解决办法
9431
查看次数

使用dbf Python模块以只读方式打开.DBF文件

首先,dbf模块很棒.我一直在使用它取得了巨大的成功.

我正在尝试在网络共享上打开dbf文件,该共享是一个只读文件系统.当我尝试这样打开它时,我收到一个错误,指出.dbf文件是只读的.

thisTable = dbf.Table('/volumes/readOnlyVolume/thisFile.dbf')
thisTable.open()
Run Code Online (Sandbox Code Playgroud)

看看文档,看起来有一种方法可以在只读模式下打开一个表,但我无法弄明白.如果你有第二个,你能帮助我吗?

谢谢!凯尔

python dbf

5
推荐指数
1
解决办法
1167
查看次数

Dapper:无法解析dbf中的字符串(解析列时出错)

我想使用dapper来查询dbf文件.在我的文件example.dbf中,我有两列:

  1. 值 - 类型NUMERIC
  2. 名称 - 类型CHARACTER

我写了类ExampleDbf

class ExampleDbf
{
    public int Value { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我想写两个简单的查询

var listOne = connection.Query<ExampleDbf>("SELECT value FROM Example");
var listTwo = connection.Query<ExampleDbf>("SELECT name, value FROM Example");
Run Code Online (Sandbox Code Playgroud)

ListOne没问题,但是当我执行listTwo时,我有以下System.Data.DataException:

Additional information: Error parsing column 0 (name=System.Byte[] - Object)
Run Code Online (Sandbox Code Playgroud)

当我使用标准的DataReader时,我必须写出类似的东西

example.name = System.Text.Encoding.ASCII.GetString((byte[])reader["name"]).Trim();
Run Code Online (Sandbox Code Playgroud)

我当然可以这样写:

class ExampleDbf2
{
    public int Value { get; set; }
    public byte[] Name { get; set; }
    public string StringName
    {
        get
        { …
Run Code Online (Sandbox Code Playgroud)

c# dbf dapper

5
推荐指数
1
解决办法
4566
查看次数

如何使用 JDBC 在 DBeaver 中打开 DBF 文件

我不知道为什么我无法使用带有“Flat Tiles (CSV/DBF)”内置 JDBC 驱动程序的 DBeaver 连接到 .DBF 文件。

我有一个共享驱动器,上面有数十个 DBF 文件。我创建了如附图所示的连接,但是当我连接到源时,我遇到了两个问题。我已经包含了我遵循的步骤以及我收到的错误。

有没有人有使用 JDBC 连接到 DBF 文件和/或使用 DBeaver 工具的经验,这可能对我有帮助?

我确实从 GitHub 下载了 DANS-DBF 库 JAR,但我不确定在这种情况下如何使用它。我注意到这个网站上写着

CsvJdbc 需要 Java 版本 1.6 或更高版本。要读取 DBF 文件,必须下载 DANS DBF 库并将其包含在 CLASSPATH 中。

但我不确定如何将其添加到 DBeaver 项目中。它们不像实际的 java 项目那样使用构建路径。

(我知道我可以在excel中打开它们,但我更喜欢这个工具来进行数据查询)。

我创建数据库
在此输入图像描述

我选择构建 CSV DBF 连接类型。
在此输入图像描述

驱动程序属性只有 .CSV 我尝试使用此设置,当它不起作用时,我将其更改为 .dbf 但它仍然不起作用
在此输入图像描述

我可以很好地连接到这个文件夹,并且我知道其中有大量的 DBF 文件。
在此输入图像描述

设置仅供参考。
在此输入图像描述

当我尝试打开出现的一个 DBF 文件时,我收到一条错误消息。 在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

dbf jdbc dbase dbeaver

5
推荐指数
1
解决办法
2万
查看次数

DBFreader python 3.7 问题

我想使用 Python 3.7 上的 dbfread 模块处理 dbf 文件,它适用于小型 dbf

\n\n
from dbfread import DBF\nfrom struct import *\n\ntable = DBF(\'usuarios.dbf\', load=True)\nfor item in table:\n    print (item)\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出:

\n\n
OrderedDict([(\'NUMUSER\', \'    0\'), (\'NOMUSER\', \'Rosy\'), (\'PASSWORD\', \'\'), (\'NIVEL\', \'SUPER\'), (\'VALIDAR\', \'P?@qMw\xc3\xa1\xc2\xbf|Ew}"Q-JW0Q0:iw^\'), (\'EMAIL\', \'MARLENGURROLA@gmail.com|\'), (\'MAILTIPO\', 1), (\'MAILFIRMA\', None), (\'MAILSMTP\', \'Ghf2U*wT3Ik?D#>W0@+9@," \xc2\xa1.deZ+%\xc2\xbfi?GL0oBrO+\xc3\xa9Z=KwXw{E(LXIv#\xc3\xb1O\xc3\xb1\xc3\xb1W+t"Aru\xc3\xa9\xc3\xb1Am\\\\O>YB$iTNv*\\\'\xc3\x91\xc3\xa92).*qv#88XZ5k%KK%R}~\xc2\xa1oOgiT\xc3\xb3\\\'=#\'), (\'HUELLA1\', None), (\'HUELLA2\', None), (\'METODO\', 0), (\'ACTIVO\', True)])\n[Finished in 0.2s]\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是当我尝试使用大 dbf 时,它显示错误

\n\n
from dbfread import DBF\nfrom struct import *\n\ntable = DBF(\'docum.dbf\', load=True)\nfor item in table:\n    print (item)\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出2: …

dbf python-3.x

5
推荐指数
1
解决办法
1957
查看次数

标签 统计

dbf ×10

dbase ×3

python ×3

c# ×2

database ×2

java ×2

jdbc ×2

.net ×1

bulkinsert ×1

dapper ×1

dbeaver ×1

legacy ×1

oledb ×1

pyodbc ×1

python-3.x ×1

sql ×1