要從PowerBuilder中獲取數(shù)據(jù),可以使用以下方法:
pyodbc
模塊連接到數(shù)據(jù)庫。示例代碼如下:import pyodbc
conn = pyodbc.connect('DRIVER={PowerBuilder};DBQ=your_database.db;UID=your_username;PWD=your_password')
cursor = conn.cursor()
# 執(zhí)行SQL查詢語句
cursor.execute('SELECT * FROM your_table')
# 獲取查詢結(jié)果
rows = cursor.fetchall()
# 遍歷結(jié)果
for row in rows:
print(row)
# 關(guān)閉連接
cursor.close()
conn.close()
請注意,上述代碼中的your_database.db
是PowerBuilder數(shù)據(jù)庫的文件名,your_username
和your_password
是數(shù)據(jù)庫的用戶名和密碼。
win32com.client
模塊連接到PowerBuilder,并調(diào)用其COM接口方法來獲取數(shù)據(jù)。示例代碼如下:import win32com.client
# 創(chuàng)建PowerBuilder應(yīng)用程序?qū)ο?/span>
pb_app = win32com.client.Dispatch("PowerBuilder.Application")
# 打開PowerBuilder應(yīng)用程序
pb_app.Open("your_application.pbl")
# 獲取數(shù)據(jù)窗口對象
dw = pb_app.CreateDataWindow("your_datawindow")
# 設(shè)置連接參數(shù)
dw.SetTransObject("your_transaction_object")
# 執(zhí)行查詢
dw.Retrieve()
# 獲取查詢結(jié)果
rows = dw.Object.Data
# 遍歷結(jié)果
for row in rows:
print(row)
# 關(guān)閉PowerBuilder應(yīng)用程序
pb_app.Close()
# 釋放資源
pb_app = None
dw = None
請注意,上述代碼中的your_application.pbl
是PowerBuilder應(yīng)用程序庫的文件名,your_datawindow
是數(shù)據(jù)窗口對象的名稱,your_transaction_object
是事務(wù)對象的名稱。
這些是使用Python從PowerBuilder中獲取數(shù)據(jù)的兩種常用方法。根據(jù)具體情況選擇適合的方法進(jìn)行操作。