簡體   English   中英

PowerBuilder DSN創建

[英]PowerBuilder DSN Creation

我是PowerBuilder的新手。

我想從MSAccess表中檢索數據並將其更新為相應的SQL表。 我無法為MSAccess創建永久的DSN,因為我必須選擇具有相同表信息的不同MSAccess文件。 我可以為SQL Server創建永久的DSN。

選擇MSAccess文件時,請幫助我動態創建DSN,並使用PowerBuilder將所有表數據推入SQL。

如果可能,還提供完整的PowerBuilder代碼以完成問題。

在Access中,我們強烈建議完全不使用DSN,因為對於某人而言,這是一件很簡單的事情,而對於用戶來說,則不那么麻煩了。 使用DSN-Less連接您應該查看PowerBuilder是否具有類似的選項。

  • 在ODBC管理員中手動創建DSN
  • 在注冊表中找到條目
  • 將注冊表語法導出到.reg文件中
  • 在PB中動態讀取和編輯.reg文件
  • 使用PB的RegistrySet ( key, valuename, valuetype, value )將其寫回到注冊表中

設置好DSN后,可以使用許多選項將數據從一個數據庫推送到另一個數據庫。

您將在PB中需要兩個transaction對象,每個transaction對象都指向其自己的數據庫。 然后,您可以使用Data Pipeline對象來管理實際的數據傳輸。

您要執行Tony引用的DSNLess連接。 我在PBDJ上展示了這樣做的示例,並在Sybase的CodeXchange上提供了代碼示例。

我正在使用此代碼,請嘗試!

//// Profile access databases accdb format
SQLCA.DBMS = "OLE DB"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='Microsoft.ACE.OLEDB.12.0',DATASOURCE='C:\databasename.accdb',DelimitIdentifier='No',CommitOnDisconnect='No'"

Connect using SQLCA;
If SQLCA.SQLCode = 0 Then
    Open ( w_rsre_frame )   
else
    MessageBox ("Cannot Connect to Database", SQLCA.SQLErrText )
End If

要么

//// Profile access databases mdb format
transaction aTrx
long resu
string database 
database = "C:\databasename.mdb" 
aTrx  = create transaction 
aTrx.DBMS = "OLE DB" 
aTrx.AutoCommit = True 
aTrx.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='"+database+"',PBMaxBlobSize=100000,StaticBind='No',PBNoCatalog='YES'"
connect using aTrx ;
if atrx.sqldbcode = 0 then
    messagebox("","Connection success to database")
else 
    messagebox("Error code: "+string(atrx.sqlcode),atrx.sqlerrtext+ " DB Code Error: "+string(atrx.sqldbcode))
end if
// do stuff...
destroy atrx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM