首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

PowerBuilder 事務對象錯誤:database transaction information not available

     編輯:程式設計綜合問答

現象

運行編譯後 EXE 於他機報錯:database transaction information not available. call settrans or settransobject function.

代碼審視

sqlca.DBMS = "SNC SQL Native Client(OLE DB)"
sqlca.LogPass = '###'
sqlca.ServerName = "IP"
sqlca.LogId = "sa"
sqlca.AutoCommit = False
sqlca.DBParm = "Database='HXceshi'"
// connect using sqlca;  // 註釋掉了!
// open(w_zhu)

根因

註釋掉了 connect using sqlca;**,導致事務對象未真正連接數據庫,後續 dw.Retrieve() 找不到事務信息。

修正代碼

connect using sqlca;
if sqlca.sqlcode <> 0 then
    MessageBox("錯誤", "連接數據庫失敗! " + string(sqlca.sqlerrtext))
    return
end if
open(w_zhu)

最佳實踐

  1. 連接後必須判斷 sqlca.sqlcode,失敗彈窗並返回,避免後續空指針崩潰。
  2. 部署時確保目標機安裝對應 **OLE DB Provider / ODBC 驅動**,且 DSN/連接字符串一致。
  3. 生產環境建議用 **INI 文件/註冊表** 存儲連接參數,EXE 讀取配置動態構建 DBParm,避免硬編碼 IP/密碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved