电脑技术学习

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

dn001
如果你用的是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