总结:
1:Text字段类型不能直接用replace函数来替换,必须用updatetext
2:字段比较不能用 where 字段 = ‘某数据’,可以用like来代替
3:updatetext时,若@ptrval值为空会出错,需注意。

解决方案 »

  1.   

    +不能用于text类型.说到底就是各种函数和运算符对数据类型的支持问题.
    不支持的,就不能用它处理.
    而支持text字段处理的仅有:
    下面的函数和语句可以与 ntext、text 或 image 数据一起使用。
    函数          语句 
    DATALENGTH    READTEXT 
    PATINDEX      SET TEXTSIZE 
    SUBSTRING     UPDATETEXT 
    TEXTPTR       WRITETEXT 
    TEXTVALID 
      

  2.   

    马可大哥,我看了你给我的帖子,我觉得你们那些东西很有规律,但是我查了下资料,没查到是什么具体的理论,比如说这里使用的是存储过程或是一个触发器之类的,因为我现在很糊涂,怎么样与我的ASP代码结合在一起,
    你象触发器,你只要定义了,在一定条件下就可以触发,不要再用ASP代码去处理,而我这个呢??
    我这个是要放到存储过程里还是其他里面,我肯定是要让它自动执行啊,这些代码也不可能到ASP里去执行吧,更何况,本身我的那个表已经存在,也不存在什么要再去建立表的情况啊!!!
      

  3.   

    所以说,不能就是不能.
    我的方法结合ASP使用也没问题啊.你可以将它封装成存储过程处理就行了.
      

  4.   

    上面的那些东西难道可以直接放到以vbscript为脚本的ASP程序中象一个很简单的查询语句一样的使用吗????
      

  5.   

    我这个是要放到存储过程里还是其他里面,我肯定是要让它自动执行啊,这些代码也不可能到ASP里去执行吧,更何况,
    --- 你可以写成存储过程,要处理时调用该存储过程即可
    本身我的那个表已经存在,也不存在什么要再去建立表的情况啊!!!
    -- 这些建表的语句都是为了测试方便而写的,你完全没必要再创建,直接用你的现有表来处理即可。
      

  6.   

    --改成存储过程
    create proc p_text
    @id varchar(3),        --要处理记录的ID号
    @s_str varchar(8000),  --要添加的字符串
    @append bit            ----追加方式,1 加在尾部,0 加在首部
    as
    --字符串添加处理
    declare @p varbinary(16),@postion int,@rplen int
    select @p=textptr(detail) from test2 where id=@id
    if @append=1
    updatetext test2.detail @p null null @s_str
    else
    updatetext test2.detail @p 0 0 @s_str
    go