我是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