Sql server PowerBuilder DSN创建
我是PowerBuilder的新手 我想从MSAccess表中检索数据,并将其更新为相应的SQL表。我无法为MSAccess创建永久DSN,因为我必须使用相同的表信息选择不同的MSAccess文件。我可以为SQL server创建永久DSN 请帮助我在选择MSAccess文件时动态创建DSN,并使用PowerBuilder将所有表数据推送到SQL 如果可能,请提供完整的PowerBuilder代码以完成问题。Sql server PowerBuilder DSN创建,sql-server,ms-access,powerbuilder,Sql Server,Ms Access,Powerbuilder,我是PowerBuilder的新手 我想从MSAccess表中检索数据,并将其更新为相应的SQL表。我无法为MSAccess创建永久DSN,因为我必须使用相同的表信息选择不同的MSAccess文件。我可以为SQL server创建永久DSN 请帮助我在选择MSAccess文件时动态创建DSN,并使用PowerBuilder将所有表数据推送到SQL 如果可能,请提供完整的PowerBuilder代码以完成问题。 在ODBC管理员中手动创建DSN 在注册表中找到该项 将注册表语法导出到.reg文件中
- 在ODBC管理员中手动创建DSN
- 在注册表中找到该项
- 将注册表语法导出到.reg文件中
- 在PB中动态读取和编辑.reg文件
- 使用PB的
RegistrySet(key、valuename、valuetype、value)将其写回注册表
transaction
对象,每个对象都指向自己的数据库。然后,您可以使用数据管道
对象来管理实际的数据传输。- 在ODBC管理员中手动创建DSN
- 在注册表中找到该项
- 将注册表语法导出到.reg文件中
- 在PB中动态读取和编辑.reg文件
- 使用PB的
RegistrySet(key、valuename、valuetype、value)将其写回注册表
PB中需要两个
transaction
对象,每个对象都指向自己的数据库。然后,您可以使用数据管道
对象来管理实际的数据传输。在Access中,我们强烈建议根本不要使用DSN,因为这样一来,用户就不用配置DSN,也不用担心用户会出问题。您应该看看PowerBuilder是否有类似的选项。在Access中,我们强烈建议不要使用DSN,因为这样一来,用户就不用再配置DSN,也不用再麻烦用户了。您应该看看PowerBuilder是否有类似的选项。您想进行Tony引用的无DSNLess连接。我展示了一个在上进行此操作的示例,并在Sybase的CodeXchange上提供了一个代码示例。您想进行Tony引用的无DSNLess连接。我在上展示了一个这样做的示例,并在Sybase的CodeExchange上提供了一个代码示例。我正在使用此代码,请尝试
//// 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
我正在使用此代码,请尝试
//// 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,正是因为DSN不断出错,通常是因为那些发现ODBC管理工具的用户“搞砸了”。我们已经使用动态构建的连接字符串实现了普通ODBC连接。请参阅www.connectionstrings.com或相关帮助。我们之所以停止使用DSN,正是因为DSN不断出错,通常是因为发现ODBC管理工具的用户“搞砸了”。我们已经使用动态构建的连接字符串实现了普通ODBC连接。请访问www.connectionstrings.com或获取相关帮助。