我的数据库的一个字段类型为“text”(数据库为SQL SERVER2000)。
我要将他显示在一个 TextBox中。TextBox的属性设置为允许多行。
每次用ADO读取是老是报错,关键代码如下:
with Rec   'res is recordset
     txtname.text=trim(!name)
     txtpassword.text=trim(!pasword)
     txtinstruction.text=trim(!instruction)
end with程序出错在倒数第二行。“instruction”的类型为text。
VB报错的提示为:“多步 OLE DB 产生错误。请检查每给OLE DB状态值”
请问这是怎么回事?如何避免
在线等,好急啊

解决方案 »

  1.   

    取出大容量的字段,如text类型的字段时应该用方法adoRec("RepFace").GetChunk(ChunkSize)
      

  2.   

    完整的写法:
    Dim actualSize  As Long
    Dim offSize     As Long
    Dim varReport   As Variant
    Dim varChunk    As Variant
    Const ChunkSize = 1024actualSize = adoRec("RepFace").actualSize
    offSize = 0
        Do While offSize < actualSize
            varChunk = adoRec("RepFace").GetChunk(ChunkSize)
            varReport = varReport & varChunk
            offSize = offSize + ChunkSize
            DoEvents
        Loop
    GetReport = CStr(varReport)'取得结果
      

  3.   

    相应的写入Text型字段应用 adoRec("RepTest").AppendChunk CVar(RepoTest)的方法
      

  4.   

    with Rec   'res is recordset
         txtname.text=trim("" & !name)
         txtpassword.text=trim("" & !pasword)
         txtinstruction.text=trim("" & !instruction)
    end with
      

  5.   

    如果没有超出控件所能赋值的范围,应该可以直接读的,但是要加入null值判断
    即可以通过与""串在一起的方法
    with Rec   'res is recordset
         txtname.text=trim("" & !name)
         txtpassword.text=trim("" & !pasword)
         txtinstruction.text=trim("" & !instruction)
    end with
      

  6.   

    我就是这么写的with Rec   'res is recordset
         txtname.text=trim("" & !name)
         txtpassword.text=trim("" & !pasword)
         txtinstruction.text=trim("" & !instruction)
    end with但数值为null时就出错`~~~~~~~~`
      

  7.   

    先用IsNull判断是否为空,如为空则不进行赋值操作