我正在使用JayDeBeAPI,该工具使用JPype来加载FileMaker的JDBC驱动程序并提取数据。
但我也想能够获取数据库中所有表的列表。
在JDBC文档(第55页)中,列出了以下函数:
如果有帮助的话,这是我的当前代码:
但我也想能够获取数据库中所有表的列表。
在JDBC文档(第55页)中,列出了以下函数:
有什么想法可以从JPype或JayDeBeAPI中调用它们吗?JDBC客户端驱动程序支持以下元数据函数:
getColumns
getColumnPrivileges
getMetaData
getTypeInfo
getTables
getTableTypes
如果有帮助的话,这是我的当前代码:
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
conn.jconn.getMetadata().getTables(None, None, "%", None)
。 - Juan Mellado