我要投稿
  • 您当前的位置:365bet官方 -> 技术教程 -> 数据库教程 -> SQL server教程 -> 教程内容
  • [ 收藏本页教程 ]
  • 如何将图片存到数据库中?SQL server]教程

    教程作者:佚名    教程来源:不详   教程栏目:SQL server教程    收藏本页
      如果你用的是sql server数据库!你不想用后台操作你可以看看这个
    下面是对text的操作你可以看看
    1. 写操作(WRITETEXT)
    这里一般要用到的函数有TextPtr获得文本字段的指针,和TextVaild检验指针的有效性,@@RowCount判断返回记录的条数。
    其基本方法是:用Textptr函数得到指针,判断其有效性,用Writetext写数据
    函数说明:Textptr(字段名)。Writetext   tablename。Fieldname   @textptr(指针) [With Log]  data(数据)
    例如:
    Begin Tran
    Declare  @Mytextptr   VarBinary(16)   
    Select   @mytextptr=textptr(pr_info)
    From  Pub_Info (updlock)
    Where  pud_id=’9999’
    IF  @Mytextptr Is Not Null
    Writetext  pub_info.pr_info   @mytextptr   with log  ‘data’
    Commit  Tran
    2. 读操作
    常用函数
    PatIndex(‘%exp%’,var|fieldname。。)
    Datalength()
    @@TextSize 文本大小
    SettextSize  N 设置文本大小
    ReadText  {TableName。FieldName}  {@textptr}  Offet  Size   [HoldLock]
    例如:
    begin tran
    Declare  @mytextptr  Varbinary(16),@Totalsize   int,@Readsize  int,@lastread  int
    Set textsize 100
    Select  @mytextptr=textptr(pr_info), @totalsize=datalength(pr_info)
    @lastread=0,
    @readsize= case  when  (textsize<datalength(pr_info) then  textsize
    eles datalength(pr_info)
    end
    From  Pub_info
    Where  Pub_id=’1622’
    IF  @mytextptr Is  not Null  and @readsize>0
    While (@lastread<@totalsize)
    ReadText  pub_info.pr_info   @mytextptr   @lastread   @readsize  holdlock
    If (@@error<>0)
      Break
    Select @lastread=@lastread+@readsize
    If ((@readsize+@lastread)>@totalsize)
    Select @readsize=@totalsize-@lastread
    End
    Commit  Tran
    3.数据更新UpdateText
    更新数据代替了写操作,其基本语法是:
    UpdateText  Table_Name.Col_Name  Text_Ptr  Offest(偏移量)   Deleted_Length
    [With Log] [Inserted_Data|Table_Name.Scr_Column_name   Str_Text_Ptr]
    说明:
    Offest:0说明从开头开始,Null表示你向当前内容追加数据。
    Deleted_Length:0表示不删除任何内容,Null表示删除所有内容。
    例如1(完全代替):
    Declare  @mytextptr varbinary(16)
    Begin tran
    Select  @mytextptr=textptr(pr_infro)  from  pub_info(uplock)  where  pub_id=’9999’
    If  @mytextptr is not null
    Updatetext  pub_info.pr_infro  @mytextptr  0  null  with  log  “you are right”
    Commit
    例如2:
    declare  @mytextptr  varbinary(16) ,@offest  int
    Begin  tran
    Select @mytextptr=textptr(pr_infro),@offest=patindex(‘%D.C%’,pr_infro)-1+4
    /*减一是因为有一个矫正的偏移量,加4是因为D.C.是4*/
    from  pub_info(unlock)  where  pub_id=’0877’
    If  @mytextptr is  not  null  and  @offest>=0
       Updatetext  pub_info.pr_infro  @mytextptr  @offest  null  with  log
    Commit  tran
    例如3:
    文本追加的问题
    将出版商pub_id=9952的内容追加到出版商Pub_id=0877d的文本中。
    Delcare  @source_textptr  varbinary(16),@target_textptr  varbinary(16)
    Begin  tran
    Select  @source_textptr=textptr(pr_infro)  from  pub_info(uplock)  where  pub_id=’0877’
    Select  @target_textptr=textptr(pr_infro)  from  pub_info(uplock)  where  pub_id=’9952’
    If  @source_textptr Is not null  and  @target  I s  not null
    Updatetext  pub_info.pr_infro  @target_textptr  null  null  
    with  log   pub_info.pr_infro  @source_textptr

     
    我要投稿   -   广告合作   -   关于本站   -   友情连接   -   网站地图   -   联系我们   -   版权声明   -   设为首页   -   加入收藏   -   网站留言
    Copyright © 2009 - 20012 www.www.ct131.com All Rights Reserved.365bet官方 版权所有