本局域网是通过一个路由器上网,对外ip是218.17.15.102
我的计算机是该局域网内的一台机,也装有sql server,ip是192.168.253.45目的是为了与局哉网内的某一sql server相连(到实际用时不是和我的这台相连,现在是为了测试通过公网能否与局域网的sql server连接)1.
我就在我自己的这台上边通过公网再和我的这台sql server连接,但是就是连接不上:dsn = "Driver={SQL Server};Provider=SQLOLEDB.1;SERVER=218.17.15.102;UID="+ username+";PWD="+userpw+";Source=192.168.253.45,1433;Network Library=DBMSSOCN;DATABASE=TestDatabase";
提示连接字符串无效2.在vc中,CDatabase的Open或者OpenEx只能通过ODBC来和数据库连接,但也只有这两个方法可用也必需用其中之一。 原来的程序都是用CDatabase来连接数据库,现在我想把它改一下通过公网连接数据库,不知道有没有办法.如果没有办法,则连上的也没有用(不过可以以后用)-------------------------------------------------
说明1: 数据库不会和公网连接------------------------------------------------------
说明2:不解决问题,不结贴(宁愿被扣信誉分等处罚)

解决方案 »

  1.   

    Source=192.168.253.45,1433改为Source=218.17.15.102,1433,不过好像你的连接字串不大对劲!你先调试成功一个能连接到公网的连接字串,然后把ip改为218.17.15.102,1433就可以了,我以前试过可以的。我用的是ado
      

  2.   

    先用odbc 实验看能不能连通!
      

  3.   

    这种情况下, ODBC如何来连接?
    还有,对于CDatabase,一定要用ODBC吗?
      

  4.   


    先手工配置ODBC,看是否能联通,如果能联通的话,那其他方法也应该不成问题。
      

  5.   

    我是说,这种情况下,如何来配制ODBC? (就是通过公网ip访问内部sql server)
      

  6.   

    一开始,我就想肯定不能用ODBC,但原来的软件中,都是用ODBC,我改的时候,只把一部分改成了ADO的方式,但这部分我在测试的时候,也还是没有通过(能过互联网连局域网内的SQL Server)
    就是不知道是怎么回事
      

  7.   

    不是你的语句的问题,是网络的问题,你的SQL server通过局域网上公网,和别的机器共用一个公网IP,在公网上实际上是找不到你的sql server,你要设置路由器,让指定的端口映射到你的机器上的这个端口才行的。