前提:SQL Server库中有一字段类型为text;VB通过ADO已连接SQL Server,并得到记录集mRe。在记录集中,此字段是mRe.(2),其类型是“adLongVarChar”,类型编号是“201”。
   问题:在VB中,将该字段的值赋给VB的类型为String的变量,例如:
         Dim mstrcontent as String
         mstrcontent=mRe.(2)   '或者 mstrcontent=Trim$(CStr(mRe.(2)))
   出现错误提示:“错误代号94  无效使用Null”

解决方案 »

  1.   

    可能adlongvarchar是一个字符类型,改为adlongvarchar(10)试试
      

  2.   

    “adLongVarChar”是常量,是VB从SQL Server库中取出记录集时,自动将字段text转换成的一种记录集的字段的数据类型,不能改变。同样的记录集的字段数据类型还有30的个。这样的数据类型如何与VB提供的数据类型,例如String交换?
      

  3.   

    你在读取记录到Recordset时,必需要用到convert函数进行转换,才能直接赋给vb中的string变量。

    selectd convert([text field] as nvarchar) from tablename
      

  4.   

    云卷云舒君:
         类似nvarchar类型的字符串字段最多只能容纳4000-8000字符,而text容量大得多,将text类型convert为nvarchar类型,会丢失数据吗?如果丢失,怎样解决?
      

  5.   

    如果超过了nvarchar的最大长度,其余的数据会丢失。解决办法是先将text字段内容写到一个临时的文本文件中去,然后再从这个文本文件中读出来,赋给string型变量。
      

  6.   

    经过反复调试,查明原因是:
        在记录集中,类型为text的字段,其类型是“adLongVarChar”,类型编号是“201”。对于此种类型的记录集字段,不能用VB的IsNull()函数进行是否是NULL的判断.我在程序中使用了IsNull()函数,错误由此引起.其实,将这种字段的值直接赋给VB的类型为String的变量是可以的.
        感谢云卷云舒!