标签: desktop-search

查询桌面搜索时如何使用win32com处理溢出?

我正在使用 Python + ADO 查询 Windows 桌面搜索 JET (ESE) 数据库。它有效,但在 ~7600 条记录后,我在使用MoveNext. 我知道它不在 EOF,因为我可以在 VBScript 中运行相同的查询并使用相同的查询获得更多的记录。

异常回溯

Traceback (most recent call last):
  File "test_desktop_search.py", line 60, in <module>
    record_set.MoveNext()
  File "<COMObject ADODB.Recordset>", line 2, in MoveNext
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147215865), None)
Run Code Online (Sandbox Code Playgroud)

查询该错误表明它是:

  • 常量: adErrDataOverflow
  • 值: 3721 -2146824567 0x800A0E89
  • 说明:数据值太大,无法由字段数据类型表示。

这在 VBScript 中运行良好(但可能只是由于错误处理不佳)。PowerShell 有以下错误(在比 Python 走得更远之后,大约与 VBScript 获得的位置相同):

Exception from HRESULT: 0x80041607
At C:\Users\doday\PycharmProjects\desktop_search_test\Get-DesktopSearchData.ps1:43 char:5
+     $recordSet.MoveNext();
+     ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo …
Run Code Online (Sandbox Code Playgroud)

python com desktop-search ado win32com

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

标签 统计

ado ×1

com ×1

desktop-search ×1

python ×1

win32com ×1