用的连接字符串是什么? 
另外, ado用的是什么版本?

解决方案 »

  1.   

    另外, 检查你的sql有没有装上sp3或者sp4, 执行:
    select @@version如果版本在 8.00.760以下, 你应该先为sql装上sp4
      

  2.   

    谢谢各位的回复我的连接字符串如下:
    cnsql = "DRIVER=SQL Server;SERVER=" & bserver & ";UID=" & buserid & ";PWD=" & bpassword & ";DATABASE=" & bdataname & ";Address=" & bserver & "," & sqlPort
    cn.Open cnsql
    在局域网里用了三年的,都很正常,最近公司搬了仓库,才要在仓库外网连到公司的数据库服务器里来。
    但速度就有问题,一样的查询语句,在仓库那边用查询分析器或者用java的jdbc都可以达到30k/s,而在VB中却只能3k/s.
    我的ado版本是2.80
    sql server版本是8.00.194
      

  3.   

    从连接字符串来看, 楼主用的应该是odbc连接, 试试改用oledb的连接方式, 将字符串修改为:Provider=SQLOLEDB.1;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名
      

  4.   

    另外, 楼主的sql没有打过任何补丁, 该升级了(不升级的情况下, 也会产生速度不稳定的问题, 这点我亲自遇到过).SQL补丁下载:
    全部补丁的位置(在下载页的中间部分,可以选择语言,以下载和sql server实例语言对应的补丁)
    http://www.microsoft.com/downloads/details.aspx?FamilyId=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5&displaylang=zh-cn
    应该安装的是
    http://download.microsoft.com/download/9/b/f/9bff6646-2cdb-4069-ada0-548be9cb9338/SQL2000-KB884525-SP4-x86-CHS.EXE
    注意下载后,执行的时候是解压,要在解压后的目录中执行setup.bat才是真正的安装
      

  5.   

    真心谢谢zjcxc(邹建)
       我按照您的提示,将连接字符串改成:
    Provider=SQLOLEDB.1;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名
    从外网连接的速度已经没问题了,能达到30k/s左右。
    我在上海,您在哪儿呢? 如果也在上海,周未请您吃饭吧。 谢谢。 :)
      

  6.   

    抱歉,又打扰你。
    我按照您的连接方式连好之后,调取数据到GRID中,编辑之后,保存出错。 
    保存的简要代码如下:
    1. 首先删除记录集中所有的老记录
    //M_FgRs 记录集
          If M_FgRs.RecordCount > 0 Then
            M_FgRs.MoveFirst
            For i = 0 To M_FgRs.RecordCount - 1
              M_FgRs.DELETE adAffectCurrent
              M_FgRs.MoveNext
            Next
          End If
    2.从MSHFlexGrid中添加编辑好的记录到记录集
    //m_fg>>编辑数据的网格
    //....
    For i = m_fg.FixedRows To saveRows - 1 
      M_FgRs.addnew  
      For j = m_fg.FixedCols To m_fg.Cols - 1
           //....
           M_FgRs.Fields(j - m_fg.FixedCols).Value = m_fg.TextMatrix(i, j)
           //....
      Next
    Next3. 处理好记录集的记录后,提交更改到数据库
    cn.BeginTrans
    //....
    //下面这句出错: 出错信息为:
    //row cannot be located for updating.
      some values may have been changed since it was last read.M_FgRs.UpdateBatch adAffectAllChapters
    //....cn.CommitTrans
    //....4.连接字符串用我原来的:
        cnsql = "DRIVER=SQL Server;SERVER=" & bserver & ";UID=" & buserid & ";PWD=" & bpassword & ";WSID=RECEPTION;DATABASE=" & bdataname & ";Network=DBMSSOCN;Address=" & bserver & "," & sqlPort
    不出错,但从外网连接速度很慢
    用您的连接字符串:
        cnsql = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=" & buserid & ";Password=" & bpassword & ";Initial Catalog=" & bdataname & ";Data Source=" & bserver & "," & sqlPort
    从外网连接速度较快,查询语句也正常但编辑数据时就出错了.
    请指教。 谢谢。