我是PowerBuilder的新手。PowerBuilder DSN創建
我想從MSAccess表中檢索數據並將其更新到相應的SQL表。我無法爲MSAccess創建永久性DSN,因爲我必須使用相同的表信息選擇不同的MSAccess文件。我可以爲SQL服務器創建一個永久DSN。
當選擇MSAccess文件並使用PowerBuilder將所有表數據推送到SQL時,請幫助我動態創建DSN。
如果可能的話,也給完整的PowerBuilder代碼來完成問題。
我是PowerBuilder的新手。PowerBuilder DSN創建
我想從MSAccess表中檢索數據並將其更新到相應的SQL表。我無法爲MSAccess創建永久性DSN,因爲我必須使用相同的表信息選擇不同的MSAccess文件。我可以爲SQL服務器創建一個永久DSN。
當選擇MSAccess文件並使用PowerBuilder將所有表數據推送到SQL時,請幫助我動態創建DSN。
如果可能的話,也給完整的PowerBuilder代碼來完成問題。
RegistrySet (key, valuename, valuetype, value)
一旦你得到了你的DSN成立,有很多選擇,PU
你需要PB中有兩個transaction
對象,每個對象指向它自己的數據庫。然後,您可以使用一個Data Pipeline
對象來管理實際的數據傳輸。
在Access中,我們強烈建議不要使用DSN,因爲對於需要配置的用戶而言,這是一件少事,用戶需要做的事情更少。 Using DSN-Less Connections您應該看看PowerBuilder是否有類似的選項。
您想要執行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
我們停止使用,正是因爲DSN一直得到搞砸了,通常是通過誰找到的ODBC管理工具 - 「只是搞砸圍繞」用戶的DSN。我們已經使用動態構建的連接字符串進行了簡單的ODBC連接。見www.connectionstrings.com或幫助。 – DaveE 2009-10-20 05:38:10