首页 文章

使用PyFileMaker提取特定记录/字段

提问于
浏览
0

Python 2.7 . 使用PyFileMaker,我可以访问FileMaker(FM)服务器,打开数据库,打开一个表(布局),但我不能(轻松)访问特定的记录和字段 . 我想知道如何从表中提取特定值

  • What I can do

这是我循环进入数据库以提取记录的方式 .

for i in range (25):
    try:
         a= fm.doFind(id_monument = i)
         L.append(a)
    except:
         pass

考虑到 (25) 是记录的数量(但它应该有更好的方法来循环数据库) . L 是库存结果的清单 . 结果是,对于列表的第一个单元格:

>>> L[0]
<PyFileMaker.FMResultset.FMResultset instance WITH LIST OF 1 RECORDS (total-count     is     327)>
[MODID = '0'
RECORDID = '236'
fk_Lieudec = '00002'
fk_auteur_fiche = '00001'
(...)

L 的每个单元格都是FM DB的记录 . F[0] 类型是 <type 'instance'> (Wasa?)

  • What I want to do

1)提取所有记录ID,然后循环这些ID

2)仅提取特定记录 . 例如 'fk_Lieudec' LIKE '*2*'

3)仅提取特定字段 . 例如,对于每个记录,提取ID和X,Y坐标 .

我实际上是在看_1376499这样做......这是好方法吗?一般来说,互联网上PyFileMaker的信息在哪里?

1 回答

  • 0

    你正在做的方式会像循环计数器一样多次击中FMServer . 如果从新的GitHub仓库安装新版本PyFileMaker,您将能够执行 findQuery 并将ID列表传递到函数中:

    fm = FMServer('login:password@filemaker.server.com','dbname','layoutname')
    
    results = fm.doFindQuery({'id': [1, 2, 3, 4],})
    for entry in results: print entry
    

    甚至可以组合这样的查询:

    fm.doFindQuery({'id': [1, 2, 3, 4], 'color': ['red', 'blue'], '!gender': 'm'})
    

    看一下here了解更多示例 .

    干杯

相关问题