首页 > 开发 > 综合 > 正文

如何将图片存到数据库中?

2024-07-21 02:10:53
字体:
来源:转载
供稿:网友
如果你用的是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 @[email protected][email protected]
if ((@[email protected])>@totalsize)
select @[email protected]@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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表