软件注册站
热情软件屋

 
运行到reordcount时,产生溢出错误(6)
编号: QA004817    
建立日期: 2003年12月28日 最后修改日期: 2003年12月28日
所属类别: Visual Basic - 数据库
Visual Basic - 错误信息
   
    操作系统: win2000
    编程工具: vb6.0
    问题: 我从MSSQL SEVER 表导出EXCEL时,用到recordcount用来作循环。我的表记录有10万多条,运行到reordcount时,产生溢出错误(6)。代码如下:
    Dim Rs_Data As New ADODB.Recordset
    Dim Irowcount As Integer
    Dim Icolcount As Integer
    
     Dim xlApp As New Excel.Application
     Dim xlBook As Excel.Workbook
     Dim xlSheet As Excel.Worksheet
     Dim xlQuery As Excel.QueryTable
     Set cn = New ADODB.Connection
     cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=rdmrp;Data Source=STANDBYSERVER"
    
    
     With Rs_Data
     If .State = adStateOpen Then
     .Close
     End If
     .ActiveConnection = cn
     .CursorLocation = adUseClient
     .CursorType = adOpenStatic
     .LockType = adLockReadOnly
     .Source = strOpen
     .Open
     End With
     With Rs_Data
     If .RecordCount < 1 Then
     MsgBox ("没有记录!")
     Exit Function
     End If
     '记录总数
     Irowcount = .RecordCount
     '字段总数
     Icolcount = .Fields.Count
     End With
    

    运行到Irowcount = .RecordCount时出错!
    请赐教。急!!
    水平: 中级(winner)
   
    产生溢出错误的原因是由于作者声明的变量类型数值太小了.
    看如下声明
    Dim Irowcount As Integer '在vb中integer类型的长度2字节,也就是说最大只能存储2的16次方的数(65536)一般还要考虑正负号占有一位这样最大只有2的15次方(32768),如真如作者所说有10万条记录的话,就肯定会产生溢出错误.
    改正方法:
    只要修改变量类型即可
    dim Irowcount as long 'long型是4字节长度

    

此问题由wenejiang回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 数据库, database, query, 错误信息, error, error message, link, compile, runtime

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio