Str_Password:= obconfig.readstring('prodpar','Password','0');//密码
Str_DB_Name:= obconfig.readstring('prodpar','DB_Name','0');//数据库名
Str_User := obconfig.readstring('prodpar','User','0');//密码
Str_Source :=  obconfig.readstring('prodpar','Source','0');//主机名
Str_Conn :='Provider=SQLOLEDB.1;Password=' +  Str_Password + ';Persist Security Info=True;User ID=' +  Str_User;
Str_Conn := Str_Conn +  ';Initial Catalog=' + Str_DB_Name +';Data Source=' + Str_Source;
我写链接字符串,就是用用户名、密码、机器名、数据库名去客户那里没连接上怎么回事,好像有个域。    这应该没什么关系吧

解决方案 »

  1.   

    showmessage(Str_Conn);
    贴上来看看是什么,Str_Source用IP试试
      

  2.   

    首先先让
    ADOCONNECTION.connected = false;
    ADOCONNECTION.ConnectionString := Str_Conn;
    showmessage(Str_Conn);//看看连接是否正确
    ADOCONNECTION.Connected := true;
      

  3.   

    [size=18px]首先你要确定一个问题是:
    你的这个数据库是否在公网上可用的
    1)如果是必须在路由器设置数据库的端口号;
    2)数据库服务器必须是“固定IP”,这个也必须在路由器设置的
    3)必须有公网的IP址址,就是“固定IP”,当然没有公网IP,也可以
    用第三方软件挂个出来即可
    这样就可以登陆到远程数据库服务器了,
    要是“局域网的数据库”,这些因素都不用考虑的,直接书写连接数据库的
    字符串即可连接到数据库上的,MSSQL数据库的默认端口为:1433{建议修改},
    内网应该没有问题,但是在公网上就容易被“攻击”的[/size]
      

  4.   

    首先你要确定一个问题是:
    你的这个数据库是否在公网上可用的
    1)如果是必须在路由器设置数据库的端口号;
    2)数据库服务器必须是“固定IP”,这个也必须在路由器设置的
    3)必须有公网的IP址址,就是“固定IP”,当然没有公网IP,也可以
    用第三方软件挂个出来即可
    这样就可以登陆到远程数据库服务器了,
    要是“局域网的数据库”,这些因素都不用考虑的,直接书写连接数据库的
    字符串即可连接到数据库上的,MSSQL数据库的默认端口为:1433{建议修改},
    内网应该没有问题,但是在公网上就容易被“攻击”的
      

  5.   


    但是机器上没装delphi,主要是先看下效果。   我用IP试试。
      

  6.   


    关于连接字符串中,每个参数的说明有没有?    我平时都是用ADOconnection连接上,把字符串复制出来,对于其中的字段,都不知道什么意思。
      

  7.   

    [Quote=首先你要确定一个问题是:
    你的这个数据库是否在公网上可用的
    1)如果是必须在路由器设置数据库的端口号;
    2)数据库服务器必须是“固定IP”,这个也必须在路由器设置的
    3)必须有公网的IP址址,就是“固定IP”,当然没有公网IP,也可以
    用第三方软件挂个出来即可
    这样就可以登陆到远程数据库服务器了,
    要是“局域网的数据库”,这些因素都不用考虑的,直接书写连接数据库的
    字符串即可连接到数据库上的,MSSQL数据库的默认端口为:1433{建议修改},
    内网应该没有问题,但是在公网上就容易被“攻击”的[/Quote]你说的公网是什么意思?   它就是一个医院的局域网
      

  8.   

    贵薪同学C/S就C/S你扯三层开发做啥子哎……晕晕的
      

  9.   


    可以用SQL服务器的名字,来连接数据库吗?
      

  10.   

    可以,,,,,,,如我的WWW-1E24AD8CDE6
      

  11.   


    http://technet.microsoft.com/zh-cn/magazine/ms254500(VS.110).aspx#
    PersistSecurity Info 关键字的默认设置为 false。如果将其设置为 true 或 yes,则允许在打开连接后通过连接获取安全敏感信息(包括用户 ID 和密码)。保持将 PersistSecurity Info 设置为 false,以确保不受信任的来源不能访问敏感的连接字符串信息。大家一般怎么设置这个字段?
      

  12.   

    http://technet.microsoft.com/zh-cn/magazine/ms254500(VS.110).aspx#
    要连接到的SQLServer 的命名实例,请使用server name\instance name语法server name?  是SQL2000,SQL2008 ??
    instance name
      

  13.   

    server name,是数据库的机器名
    instance name,是数据库的实例名 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    如果数据库安装时,用的是默认实例,这里就不用再指定instance,直接server
      

  14.   

    客户那里是什么操作系统?我上次有一个客户那里安装的是XP,死活连不上,我把他的系统换成W2000,好了,他奶奶的,连接什么的都没变,算给你个参考把
      

  15.   

    我的SQL服务器托盘图标,是白色的机箱加一个绿色的小三角;
    它的那个托盘好像是全绿色,不太一样。
      

  16.   

    这个与系统没有关系的,
    我用的 操作系统+MMSQL 测试如下:
    WINXPSP3+MSSQL2008 完整版本,测试成功
    WIN7+MSSQL2005 精简版本   测试成功
    WIN7SP1+MSSQL2005 精简版本  测试成功
      

  17.   

    是不是他在XP上没有打SP3,然后SQL2000要打SP4补丁
      

  18.   

    那你还是确定系统版本吧,
    以前我也在WINXP无SP的补丁也成功安装MSSQL2000的
      

  19.   


    原来是40分,现在加到80分了。
    后来我发现,好像是报表的问题,在设置报表的时候,报表自动把ADOConnection打开,ConnectionString也被自动写上去。  
    我把ConnectionString去掉就好了。
    但是有个疑问,我在程序开始的时候,从INI读参数给ConncetionString,然后再OPEN,应该以我的参数为主啊,纳闷
      

  20.   

    后来我发现,好像是报表的问题,在设置报表的时候,报表自动把ADOConnection打开,ConnectionString也被自动写上去。   
    我把ConnectionString去掉就好了。
    但是有个疑问,我在程序开始的时候,从INI读参数给ConncetionString,然后再OPEN,应该以我的参数为主啊,纳闷这个问题请兄弟们来回答下。