在 DBF 中搜索并更新记录

2023-12-07

Code:

#!/usr/bin/python
db = dbf.Dbf("MEST2.DBF")
#LINE TO UPDATE:
rec = db[0]
#PROEST IS A field of my dbf. I'm assigning 1 to this field line 0
rec["PROEST"] = 1
rec.store()
del rec
db.close()

DBF 表的图像:https://i.stack.imgur.com/1UHE1.jpg

我的问题是我无法按行更改记录,导致产品(PROCOD)的位置可能会有所不同。

对于获取 PROCOD 并更改 PROEST 的值有什么建议吗?

UPDATED:

#!/usr/bin/python

import dbf
db = dbf.Table('MEST2.DBF')
with db:
    procod_idx = db.create_index(lambda rec: (rec.codigo, rec.procod))
    match = procod_idx.search(match='000001')

    # should only be one product with that code
    record = match[0]   
    with record:
        record.proest = 23

但现在的问题是,我如何根据 CODIGO 字段(股票代码)编辑值。我有多个股票 ID:(1,2,5,11)。代码仅更新第一个结果,我需要更新基于 CODIGO 字段的特定记录。

在 SQL 中将是:“UPDATE PROEST SET 32 where CODIGO=11”...或 CODIGO=2

SOLVED通过伊森·弗曼

#!/usr/bin/python

import dbf
db = dbf.Table('MEST2.DBF')
with db:
    procod_idx = db.create_index(lambda rec: (rec.codigo, rec.procod))
    match = procod_idx.search(match=(11, '000001'))
    record = match[0]
    with record:
        record.proest = 25
        record.dt_atualiz = '14/07/15 16:52'

你不说哪个dbf你正在使用的包,但它看起来像mine.

您想要做的是在上创建一个临时索引PROCOD字段,然后您可以搜索它并更新您需要的任何其他字段:

# untested
import dbf
db = dbf.Table('MEST2.DBF')
with db:
    procod_idx = db.create_index(lambda rec: rec.procod)
    # get a list of all matching records
    match = procod_idx.search(match='000001')
    # should only be one product with that code
    record = match[0]
    with record:
        record.proest = ...
        record.dt_atualiz = ...

如果产品代码不是唯一的,那么上面的“应该只是一个具有该代码注释的产品”是错误的。

将索引更改为:

procod_idx = db.create_index(lambda rec: (rec.codigo, rec.procod))

然后搜索:

    match = procod_idx.search(match=(11, '000001'))
    record = match[0]
    ...
    match = procod_idx.search(match=(2, '000001'))
    record = match[0]
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 DBF 中搜索并更新记录 的相关文章

随机推荐

  • 如何测试 dockerignore 文件?

    读完后 dockerignore文档 我想知道有没有办法测试一下 Examples node modules 如何检查我的 dockerfile 忽略正确的文件和目录 扩展至VonC的建议 这是一个示例构建命令 您可以使用它来使用当前文件夹
  • Spring Data Rest @EmbeddedId 无法从 Post Request 构造

    我有一个 JPA 实体Person和一个实体Team 两者都由一个实体连接人与团队 该连接实体与以下对象保持多对一关系Person和一到Team 它有一个由 id 组成的多列键Person和Team 由 EmbeddedId 表示 为了将嵌
  • Endpoint 与 Windows 沉浸式项目版本 1 不兼容

    由于某种原因 我使用 添加服务引用 向导为 wcf 服务生成代码时出错 Custom tool warning No endpoints compatible with version 1 of windows immersive proj
  • 如何在复选框单击时选择 jqGrid 行?

    下面是我的 jqGrid 代码 我想选择行或突出显示当前行 当我checkjqgrid 行内的特定复选框 现在onSelectRow我正在检查复选框 var xmlDoc parseXML xml configDiv empty div w
  • 是否可以让“命名构造函数”返回私有构造的、不可移动、不可复制的 std::Optional

    我主要从事不允许抛出异常的系统级 C 项目 但 理所应当 强烈鼓励使用 RAII 现在 我们使用许多 C 程序员熟悉的臭名昭著的技巧来处理构造函数失败的问题 例如 简单的构造函数 然后调用bool init Args 做困难的事情 真正的构
  • 阿帕奇的条件

    I have KOHANA ENV环境变量设置为DEVELOPMENT例如 现在有一组规则 仅当该 var 设置为PRODUCTION 打开 mod deflate 设置过期标头默认值 关闭 ETag 等 例如 if KOHANA ENV
  • 如何在 pyOpenSSL 中获取 DTLS 的当前密码

    我需要在 pyOpenSSL 中获得 DTLS 协议的协商密码 我成功地为 TCP 套接字做到了这一点 但当涉及到数据报时 情况就不那么明显了 请提供 C 或 Python 语言的示例 这是我到目前为止所尝试过的 import socket
  • Microsoft Excel 会破坏 .csv 文件中的变音符号?

    我正在以编程方式将数据 使用 PHP 5 2 导出到 csv 测试文件中 示例数据 Num ro 1 注意带重音的 e 数据是utf 8 无前置 BOM 当我在 MS Excel 中打开此文件时 显示为Num ro 1 我可以在文本编辑器
  • JDA - 如何等待下一条消息

    我正在使用 JDA 制作一个不和谐的机器人 我想知道如何等待消息 像这样的东西 import net dv8tion jda api events message guild GuildMessageReceivedEvent import
  • Java 中的绑定是什么 - 术语

    我知道什么是静态绑定和动态绑定 所以我的问题与此无关 让我们看看静态绑定是怎么说的this 1 Java中的静态绑定发生在编译时 而动态绑定发生在编译时 绑定发生在运行时期间 2 私有方法 最终方法和静态方法以及变量使用静态绑定并由编译器绑
  • 以管理员身份运行时 DriveInfo.GetDrives() 不返回映射驱动器

    我正在创建一个 WPF 应用程序 除其他外 它还应该检查多个映射驱动器是否存在 代码很简单 DriveInfo systemDrives DriveInfo GetDrives foreach DriveInfo i in systemDr
  • std::byte 可以替代 std::aligned_storage 吗?

    C 17引入了一种新类型 std byte 所以现在我们终于有了一个一等公民类型来表示内存中的字节 除了在标准中是一个新颖的东西之外 C 的对象创建 生命周期的开始和结束 别名等规则在大多数情况下都相当复杂且不直观 所以每当我觉得std b
  • PHP/curl:namelookup_time/dns 减慢请求

    编辑 找到部分原因 见底部 我正在从 php ini 进行标准的curl 调用 但是 名称解析期间似乎出现了挂断 在我的 OSX 机器上 对于同一子网的此查询和其他查询 namelookup time 始终超过 1 秒 我的子网上的一台 L
  • Jmeter 中合理同时运行的最大线程数是多少?

    我想使用尽可能多的线程 以使用更少的计算机 但又不让瓶颈出现在客户端 只要使用得当 JMeter 就可以模拟非常高的负载 别听都市传说这说明 JMeter 无法处理高负载 现在至于答案 取决于 你的机器功率 你的jvm是32位还是64位 你
  • 防止 python 关闭 Windows

    我想防止 Windows xp 和 7 关闭 为此 我似乎必须拦截 WM QUERYENDSESSION 消息并返回 False 好吧 我必须纠正我的说法 这个程序在 Windows 7 下工作正常 但在 Windows 7 嵌入式标准 S
  • 如何使用 R 将 Grib1 转换为 Netcdf?

    我刚刚下载了一些 Grib 格式的气候数据 我想使用 R 将其转换为 NetCDF 格式 此外 由于该文件由不同的变量组成 我想一次将一个变量提取到单独的文件中 如果没有您的特定文件 很难回答这个问题 你应该考虑生产可重复的examples
  • 如何替换两个符号之间所有出现的字符串?

    我正在 Javascript 上使用 RegEx 这就是我遇到的问题 我有一个简单的字符串 例如 span style font family Verdana size 3D quot 2 quot http 72 55 146 142 8
  • cmd ftp mput - jpeg 文件与原始文件不同

    目前我正在为 ftp s 执行此批处理 打开192 1 2 3 USER密码cd 文件夹 液晶屏 c 文件夹 promptmkdir 20140730光盘 20140730 输入 jpeg quit 在测试过程中 我尝试输入 10 个文件
  • 使用 Javascript 通过单击按钮来切换下拉列表的启用和禁用?

    我使用以下 JavaScript 来禁用 ASP NET 页面中的下拉列表 当我单击按钮时会调用该列表 function disableDropDown DropDownID document getElementById DropDown
  • 在 DBF 中搜索并更新记录

    Code usr bin python db dbf Dbf MEST2 DBF LINE TO UPDATE rec db 0 PROEST IS A field of my dbf I m assigning 1 to this fie