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

MSSQL
修复断电等损坏的SQL 数据库
SQL 返回期间内的所有日期
数据库中的内容字段被挂马的替换方法 SQL注入
同一个sql语句 连接两个数据库服务器
SQL Server 空值处理策略[推荐]
sql2005 create file遇到操作系统错误5拒绝访问 错误1802
SQL SERVER 删除重复内容行
SQL SERVER 的SQL语句优化方式小结
数据库高并发情况下重复值写入的避免 字段组合约束
一个有趣的SQL命题 用一条语句切换BIT型的真假值
AspNetPager分页控件 存储过程
SQL Server自动生成日期加数字的序列号
远程连接局域网内的SQL Server 的方法
把数据批量插入具有Identity列的表的方法
SQL Server 索引维护sql语句
从两种SQL表连接写法来了解过去
SQLServer 循环批处理
从每个分类选择10条记录的sql语句
SQLServer XML查询快速入门(18句话)
被遗忘的SQLServer比较运算符谓词

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 104 ::
收藏到网摘: 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