【发布时间】:2014-01-28 10:58:38
【问题描述】:
我正在使用JayDeBeAPI,它使用 JPype 加载 FileMaker 的 JDBC 驱动程序并提取数据。
但我也希望能够获取数据库中所有表的列表。
在JDBC documentation(第55页)中列出了以下功能:
JDBC 客户端驱动支持以下元数据功能:
获取列
getColumnPrivileges
获取元数据
获取类型信息
获取表格
getTableTypes
有什么想法可以从 JPype 或 JayDeBeAPI 中调用它们吗?
如果有帮助,这是我当前的代码:
import jaydebeapi
import jpype
jar = r'/opt/drivers/fmjdbc.jar'
args='-Djava.class.path=%s' % jar
jvm_path = jpype.getDefaultJVMPath()
jpype.startJVM(jvm_path, args)
conn = jaydebeapi.connect('com.filemaker.jdbc.Driver',
SETTINGS['SOURCE_URL'], SETTINGS['SOURCE_UID'], SETTINGS['SOURCE_PW'])
curs = conn.cursor()
#Sample Query:
curs.execute("select * from table")
result_rows = curs.fetchall()
更新:
这里有一些进展,它似乎应该可以工作,但我收到以下错误。有什么想法吗?
> conn.jconn.metadata.getTables()
*** RuntimeError: No matching overloads found. at src/native/common/jp_method.cpp:121
【问题讨论】:
-
我现在无法测试,但我认为调用应该匹配Java getTables 方法签名,那么:
conn.jconn.getMetadata().getTables(None, None, "%", None)
标签: python jdbc jpype jaydebeapi