Sql圖片
A. 怎麼在sql中保存圖片
/*--bcp 實現二進制文件的導入導出
支持image,text,ntext欄位的導入/導出
image適合於二進制文件,包括:Word文檔,Excel文檔,圖片,音樂等
text,ntext適合於文本數據文件
注意:導入時,將覆蓋滿足條件的所有行
導出時,將把所有滿足條件的行導出到指定文件中
此存儲過程僅用bcp實現
鄒建 2003.08-----------------*/
/*--調用示例
--數據導出
exec p_binaryIO 'zj','','','acc_演示數據..tb','img','c:\zj1.dat'
--數據導入
exec p_binaryIO 'zj','','','acc_演示數據..tb','img','c:\zj1.dat','',0
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_binaryIO]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_binaryIO]
GO
Create proc p_binaryIO
@servename varchar (30),--伺服器名稱
@username varchar (30), --用戶名
@password varchar (30),--密碼
@tbname varchar (500), --資料庫..表名
@fdname varchar (30), --欄位名
@fname varchar (1000),--目錄+文件名,處理過程中要使用/覆蓋:@filename+_temp
@tj varchar (1000)='', --處理條件.對於數據導入,如果條件中包含@fdname,請指定表名前綴
@isout bit=1--1導出((默認),0導入
AS
declare @fname_in varchar(1000)--bcp處理應答文件名
,@fsize varchar(20)--要處理的文件的大小
,@m_tbname varchar(50)--臨時表名
,@sql varchar(8000)
--則取得導入文件的大小
if @isout=1
set @fsize='0'
else
begin
create table #tb(可選名 varchar(20),大小 int
,創建日期 varchar(10),創建時間 varchar(20)
,上次寫操作日期 varchar(10),上次寫操作時間 varchar(20)
,上次訪問日期 varchar(10),上次訪問時間 varchar(20),特性 int)
insert into #tb
exec master..xp_getfiledetails @fname
select @fsize=大小 from #tb
drop table #tb
if @fsize is null
begin
print '文件未找到'
return
end
end
--生成數據處理應答文件
set @m_tbname='[##temp'+cast(newid() as varchar(40))+']'
set @sql='select * into '+@m_tbname+' from(
select null as 類型
union all select 0 as 前綴
union all select '+@fsize+' as 長度
union all select null as 結束
union all select null as 格式
) a'
exec(@sql)
select @fname_in=@fname+'_temp'
,@sql='bcp "'+@m_tbname+'" out "'+@fname_in
+'" /S"'+@servename
+case when isnull(@username,'')='' then ''
else '" /U"'+@username end
+'" /P"'+isnull(@password,'')+'" /c'
exec master..xp_cmdshell @sql
--刪除臨時表
set @sql='drop table '+@m_tbname
exec(@sql)
if @isout=1
begin
set @sql='bcp "select top 1 '+@fdname+' from '
+@tbname+case isnull(@tj,'') when '' then ''
else ' where '+@tj end
+'" queryout "'+@fname
+'" /S"'+@servename
+case when isnull(@username,'')='' then ''
else '" /U"'+@username end
+'" /P"'+isnull(@password,'')
+'" /i"'+@fname_in+'"'
exec master..xp_cmdshell @sql
end
else
begin
--為數據導入准備臨時表
set @sql='select top 0 '+@fdname+' into '
+@m_tbname+' from ' +@tbname
exec(@sql)
--將數據導入到臨時表
set @sql='bcp "'+@m_tbname+'" in "'+@fname
+'" /S"'+@servename
+case when isnull(@username,'')='' then ''
else '" /U"'+@username end
+'" /P"'+isnull(@password,'')
+'" /i"'+@fname_in+'"'
exec master..xp_cmdshell @sql
--將數據導入到正式表中
set @sql='update '+@tbname
+' set '+@fdname+'=b.'+@fdname
+' from '+@tbname+' a,'
+@m_tbname+' b'
+case isnull(@tj,'') when '' then ''
else ' where '+@tj end
exec(@sql)
--刪除數據處理臨時表
set @sql='drop table '+@m_tbname
end
--刪除數據處理應答文件
set @sql='del '+@fname_in
exec master..xp_cmdshell @sql
go
B. 怎麼在sql資料庫中的表裡邊添加圖片
1、打開開始菜單欄,在菜單欄上找到我們已經安裝的SQL server 2008,單擊打開它。
C. 怎麼在sql資料庫中存放圖片
VB在SQL Server 2000中存儲圖片,其實不是特別困難的。
1、數據表必須有數據類型是Image類型的欄位,這個欄位是可以存儲圖形的二進制數據的,存儲量可達2G位元組。
2、可想,存儲圖形二進制數據,必須就原來的圖形轉換為二進制數據,這是存儲圖形數據的關鍵。
3、存儲的二進制圖形,如果要讀取,必須就二進制數據轉換為圖形數據。
上面是VB在SQL Server 2000中存儲圖片的必須要求。但是也可以在數據表存儲圖形的路徑,這樣比較簡單,但是不安全,我們就以存儲二進制數據討論吧。
一、存儲圖形的關鍵語句:
Dim mst As New ADODB.Stream 'Stream 對象是進行二進制數據操作對象
mst.Type = abTypeBinary
mst.Open
If 圖片的路徑和文件名變數(需要用其他方法獲得)> "" Then
mst.LoadFromFile 圖片的路徑和文件名變數
End If
rs("存儲二進制數據的欄位") = mst.Read
二、讀取存儲的二進制數據的關鍵語句:
Dim mst As New ADODB.Stream
mst.Type = abTypeBinary
mst.Open
mst.Write rs("存儲二進制數據的欄位")
mst.SaveToFile App.Path & "/" & list1.Text,abSaveCreateOverWrite
Picture1.Picture = LoadPicture(App.Path & "/" & List1.Text)
mst.Close '別忘了關閉對象!
D. 用SQL語句插入圖片
插入也是insert into ,讀取也是select [欄位].和普通的操作沒什麼區別.
主要看你使用什麼語言編程,在程序中,將圖片轉化成二進制,存到資料庫中,表中的欄位數據類型設置成image.直接把圖片存到資料庫裡面是不行的.
E. sql圖片選什麼數據類型
就用varchar就行,一般是存圖片的路徑,將圖片以二進制存進資料庫是相當相當的不推薦的。效率大幅度降低。
F. sql資料庫中如何存放圖片相對路徑(不用代碼)
1、在打開【SQL Server Managemenet Studio】窗口,在【對象資源管理器】窗口依次站看【資料庫】——【新建的資料庫】節點。
G. 如何從sql資料庫內讀取圖片
何必要將圖片存入資料庫,存圖片路徑不是更好。你想一下,如果做一個購物網,都將圖片以二進制存入資料庫,從網頁讀取的時間不是更長,更沒效率。
H. 如何在sql server中存儲圖片
1、首先可以存儲圖片鏈接,設置圖片鏈接欄位,如下圖所示。
I. SQL語句 插入圖片
如果商品編號為123在庫中存在,那隻能update了
update pc(表名) set image='圖片' where 商品編號=123
如果商品編號為123在庫中不存在,可以直接插入
Insert into PC(image,商品編號) values(@image,123)
J. sql語句插入圖片
1.保存圖片路徑:這個不需要nvarchar(max),比如nvarchar(200),只要夠圖片的絕對路徑長度就行,比如'F:\pictures\001.jpg'
2.保存圖片:一般使用binary(max)。需要編程實現將圖片轉化成二進制碼,存儲,讀取的時候再由程序還原成圖片。