gpt4 book ai didi

ruby win32ole MS Access : How to find all the records updated since last export?

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:40 24 4
gpt4 key购买 nike

我正在使用 win32ole 模块/库来 Access Access 数据库。但是我无法在 Rails 中找到数据库中任何表中的 created_at 或 updated_at 列。我想知道如何找到已更新的行?

所以我有

require 'win32ole'
connection = WIN32OLE.new('ADODB.Conneciton')
conneciton.Open('Provider = Microsoft.ACE.OlEDB.12.0; Data Source = c:\data.accdb')

recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(some_sql, connection)

fields = []
recordset.Fields.each do |field|
fields << field.name
end

data = recordset.GetRows.transpose

so data = [
['john', 'doe', 'author'],
['mick', 'jagger', 'singer'],
['woody', 'allen', 'direct'],
['pablo', 'picasso', 'painter'],
['homer', 'simpson', 'loser']
]

fields= ['first', 'last', 'occupation']

但是,如果有人将 Homer 的工作更改为“Winner”,我需要使用哪种 SQL 查询来了解这一点。据推测,有一个最后检查的时间戳来理解这一点。假设它已经提供了,那么如何去做呢?

最佳答案

默认情况下,Rails(实际上是 ActiveRecord)模型中的 created_at 和 updated_at 列会自动添加到从 script/generate model 生成的迁移脚本中。此外,当 ActiveRecord 去文本化它们的存在时,它们会自动维护。即便如此,如果您绕过 AR 直接进入数据库,这些列可能不会为您维护。

恐怕 Access 不会自动为您执行任何这些操作。虽然我确信在某种程度上复制功能是可能的,但这可能不是微不足道的。通常,您需要使用触发器(在 Access 中未实现)或更新表的代码(ActiveRecord 所做的)来处理更改。

关于 ruby win32ole MS Access : How to find all the records updated since last export?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2225674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com