我使用了Scott Klement的示例代码,使用jtds-1.3.1.jar从我们的iSeries(级别V5R2M0)创建到我们的Azure SQL Server的连接。 Scott的示例RPG ILE程序MSSQLTEST获取连接值测试失败,因为它总是为空。 Java软件成功加载并显示没有错误。以下是有问题的代码:
prop = JDBC_Properties();
JDBC_setProp(prop: 'userName' : 'dbadmin@mssqlserver');
JDBC_setProp(prop: 'password' : 'password');
JDBC_setProp(prop: 'databaseName' : 'SQLDatabase');
JDBC_setProp(prop: 'encrypt' : 'true');
JDBC_setProp(prop: 'hostNameInCertificate' : '*.database.windows.net');
JDBC_setProp(prop: 'loginTimeout' : '30');
conn = JDBC_ConnProp('net.sourceforge.jtds.jdbc.Driver'
:'jdbc:jtds:sqlserver://mssqlserver.database.windows.net:1433'
: prop );
JDBC_freeProp(prop);
if (conn = *NULL);
return;
endif;
连接参数由Microsoft提供:
jdbc:sqlserver://mssqlserver.database.windows.net:1433;database=Database;user=dbadmin@mssqlserver;password={your_password_here};encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
我尝试了以下尝试使连接正常工作:
在我们的路由器上为端口1433添加了一个端口,指向我们的iSeries IP地址
将我们的外部IP地址添加到Azure SQL Server防火墙
我已经通过在可以运行的PC上创建与Azure SQL Server的ODBC连接来测试连接参数
有没有人在iSeries和Azure SQL Server之间工作?
答案 0 :(得分:0)
我没有使用过jTDS,但根据我的经验,Microsoft建议我们使用SQL Server JDBC(sqljdbc.jar或sqljdbc4.jar)从Java连接到Azure SQL数据库。您可以参考https://msdn.microsoft.com/library/gg715284.aspx获取示例,您可能需要查看http://as400blog.blogspot.mx/2009/09/need-to-access-ms-sql-databases-from.html以了解如何利用此驱动程序。
答案 1 :(得分:0)
我注意到在Azure门户提供的连接字符串中,用户的关键字是user
,而不是userName
。在使用user
设置JDBC_setprop
的值后,它对我有效。