我装了Sql2000,用vb编了一个程序访问和控制数据库
方法是这样的:装好Sql后在数据源那添加一个系统DNS,数据库文件为123,然后在VB的ado控件上指定DNS=123,在本地访问和控制都很正常源码如下:
sqlSource = "select * from loginbiao where(用户名='" & Text1 & "'" & "and 密码='" &Text2 & "')"
Adodc1.RecordSource = sqlSource
Adodc1.Refresh
If Adodc1.Recordset.RecordCount = 0 Then MsgBox "你不能进入"程序放在一台局域网中的win98电脑下就不能进入了,查过旧贴,试过把代码改成 Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=123;Data Source=192.168.0.1"这样连本机也登录不上了(本机ip是192.168.0.1,win98ip是0.2)也试过另一种方法,如:
dim cn as New Adodb......
cn.open......
之类的方法,也不行,一定要指定一个DNS数据库给ado控件才能在本机上登录控制,而且在其它机上无法登录

解决方案 »

  1.   

    你是不是在程序里用了ADO Data Control,而且这个控件又使用了你说的那个数据源?如果是这样的话,那你必须在其它机器上建立一个与本机一样的DSN才可以。不过最好在程序里不要用Data控件,而直接引用ADODB,用连接字符串来连接数据库,然后用ADODB的Recordset来绑定到相关的显示控件就行了。
      

  2.   

    你所说的其它机子是装的win98?
    而且没有装sql server client?
    如果是的话我想你可以考虑装一下sql server的客房端,再试试你的程序如果你其它机子是win2000的话,最好也装一个sql server的客房端,或者使用专门的打包工具将sql的访问程序打包进去。
      

  3.   

    对不起,大家,我疏忽了一个问题:
    在adodc控件中有一个“身份验证”选项卡,我一直以为这是windows的口令,但其实是sa的口令,我将用户名改成sa,密码123后就可以正常在本机访问我的数据库了
    代码如下:
    sqlSource = "select * from loginbiao where(用户名='" & Text1 & "'" & "and 密码='" & Text2 & "')"
     Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=123;Data Source=192.168.0.1"
     Adodc1.RecordSource = sqlSource
     Adodc1.Refresh
     If Adodc1.Recordset.RecordCount = 0 Then MsgBox "你不能进入"但编绎后放在win98运行,会像死机一样,过了一会就出现“你不能进入”
    也就是说还是连不上我的xp下的Sql98是什么也没装,我再试试
      

  4.   

    dim conn as new adodb.connection
    with conn
        If .State = adStateOpen Then .Close
        .ConnectionString = "driver=SQL Server;server=计算机名或IP地址;uid=sa;pwd=;database=数据库名"
        .CommandTimeout = 300
        .Open
    end with
      

  5.   

    ok ok ,我在98下成功设好了,原来关键是要在一处地方选TCP/IP协议,他默认是Named Ticp的,这个问题主要是leayh(云卷云舒) 给了我启发:客户端也要设好数据源....啊啊学到了好多知识,谢谢大家结贴了