当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 如何将图片存到数据库中?

MSSQL
SQLSERVER 中datetime 和 smalldatetime类型分析说明
数据库清除日志文件(LDF文件过大)
按日期选择最晚日期与最早日期对应的数的差值
sql 时间函数 整理的比较全了
SQL Server全文检索查询浅析
SQL 存储过程基础语法之一
SQL Substring提取部分字符串
用户"sa"登陆失败 SQLServer 错误18456的解决方法
MSSQL 检查所使用的语句是否符合标准
drop,truncate与delete的区别
SQL语句查询数据库中重复记录的个数
SQL 导入导出Excel数据的语句
可以获取客户端的IP地址的sql语句
SQL 根据汉字获取全拼的代码
sqlserver exists,not exists的用法
sqlserver substring函数使用方法小结
sql 判断数据库,表,存储过程等是否存在的代码
做购物车系统时利用到得几个sqlserver 存储过程
Sql2000数据库的备份文件恢复到Sql2005的方法
sql 分组查询问题

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 34 ::
收藏到网摘: n/a

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