① 怎麼在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
② 用SQL語句完成圖片中的要求
SELECTTEMP.編號,
TEMP.姓名,
COUNT(DECODE(TEMP.類別,'A',TEMP.數量))AS"A類數量",
COUNT(DECODE(TEMP.類別,'A',TEMP.價格))AS"A類價格",
COUNT(DECODE(TEMP.類別,'B',TEMP.數量))AS"B類數量",
COUNT(DECODE(TEMP.類別,'B',TEMP.價格))AS"B類價格",
COUNT(DECODE(TEMP.類別,'C',TEMP.數量))AS"C類數量",
COUNT(DECODE(TEMP.類別,'C',TEMP.價格))AS"C類價格",
"匯總"
FROMTEMP
GROUPBYTEMP.編號,TEMP.姓名;
③ sql語句里,想去掉條件限制里對圖片限制,該怎樣去掉
把數據插入到資料庫時候,肯定有個if條件去判斷了 如內容必須有.jpg .gif等的字元才讓插入 你把那個條件刪了就行了
④ sql資料庫中如何存放圖片相對路徑(不用代碼)
1、在打開【SQL Server Managemenet Studio】窗口,在【對象資源管理器】窗口依次站看【資料庫】——【新建的資料庫】節點。
⑤ SQL中圖片存儲的方法,謝謝!
首先 在頁面放 個FileUpload 控制項
//判斷 FileUpload 是否為空
if (fileImage.FileName != "")
{
//得到 圖片的後綴名
string imgname = Path.GetExtension(fileImage.PostedFile.FileName.Trim());
//判斷後綴名的格式
if (imgname != ".jpg" && imgname != ".bmp" && imgname != ".gif")
{
lblMsg.Text = "圖片只支持jpg,gif,bmp3種格式";
return;
}
// 我是用的 分時間秒 毫秒 +後綴 名 以免圖片名稱重復 給上傳的圖片取個新名稱
string filename=DateTime.Now.Ticks.ToString()+Path.GetExtension(fileImage.PostedFile.FileName.Trim());
//把圖片保存到指定的文件夾裡面 "../tp/" 是文件夾路徑
fileImage.SaveAs(Server.MapPath("../tp/") + filename);
最後 在把 這個 保存的路徑 插入到數據
}
這是刪除 伺服器上上傳的圖片
File.Delete(Server.MapPath("../tp/") + 加資料庫 圖片的路徑);
⑥ 用SQL語句插入圖片
插入也是insert into ,讀取也是select [欄位].和普通的操作沒什麼區別.
主要看你使用什麼語言編程,在程序中,將圖片轉化成二進制,存到資料庫中,表中的欄位數據類型設置成image.直接把圖片存到資料庫裡面是不行的.
⑦ sql server 2008資料庫關系圖怎麼定義主鍵和約束
1、採用向導定義主鍵和約束,這個應該很簡單
2、使用sql語句聲明主鍵和添加約束
primary key用來聲明主鍵。
添加主鍵約束語句如:
alter table member
add
constraint PK_member_member_no primary key clustered (member_no)
⑧ 如下圖,sql server 2008我要刪除default約束
展開表的「約束」,滑鼠右鍵單擊,選擇刪除即可,如下圖
⑨ 怎麼在SQL資料庫的表中插入圖片SQL2008
sql中有數據類型image。在sql2005幫助中對此解釋如下:
Microsoft SQL Server 2005 將超過 8,000 個字元的字元串和大於 8,000 位元組的二進制數據存儲為名為 text 和
image 的特殊數據類型。超過 4,000 個字元的 Unicode 字元串存儲為 ntext 數據類型。
例如,您需要將一個大型客戶信息文本文件 (.txt) 導入 SQL Server
資料庫。應將這些數據作為一個數據塊存儲起來,而不是集成到數據表的多個列中。為此,可以創建一個 text
數據類型的列。但是,如果必須存儲公司徽標,它們當前存儲為標記圖像文件格式 (TIFF) 圖像 (.tif) 且每個圖像的大小為 10 KB,則可以創建一個
image 數據類型的列。
如果要存儲的文本數據是 Unicode 格式,那麼應使用 ntext
數據類型。例如,一個為國際客戶創建的套用信函很可能包含用於各種不同語言的國際拼寫和字元。這種數據應存儲在 ntext 列中。
每個 text 和 ntext 數據值都具有排序規則。排序規則定義各種屬性,例如比較規則以及是否區分大小寫或重音。text
值的排序規則還指定了代碼頁,代碼頁定義用於表示每個字元的位模式。每個 ntext 值均使用對所有排序規則都相同的 Unicode
代碼頁。每個資料庫都有默認的排序規則。當創建 text 或 ntext 列時,除非使用 COLLATE
子句指定了特定的排序規則,否則將為其指定資料庫的默認排序規則。當組合或比較兩個具有不同排序規則的 text 或 ntext
值時,根據排序規則的優先規則來確定操作所使用的排序規則。
image 數據中的數據被存儲為位串,SQL Server 不對其進行解釋。對 image
列中的數據的任何解釋都必須由應用程序來完成。例如,應用程序可以用 BMP、TIFF、GIF 或 JPEG 格式將數據存儲在 image 列中。從 image
列中讀取數據的應用程序必須能夠識別數據的格式並正確顯示數據。image 列所做的全部工作就是提供一個位置,以存儲組成圖像數據值的位流。
通常情況下,text、ntext 或 image 字元串是存儲在數據行外的大型(最高可達 2 GB)字元或二進制字元串。數據行只包括一個
16 位元組的文本指針,該指針指向一個樹的根節點,該樹由映射存儲串片段的頁的內部指針構成。
使用 SQL Server,可將中小型 text、ntext 和 image
值存儲在一個數據行中,從而提高查詢訪問這些值的速度。
當 text、ntext 或 image 字元串存儲在數據行中時,SQL Server
無須訪問單獨的頁或頁集合來讀寫這些字元串。這使得對 text、ntext 或 image 行內字元串的讀取幾乎與對 varchar、nvarchar 或
varbinary 字元串的讀取一樣快。
若要在數據行中存儲 text、ntext 或 image 字元串,必須先使用 sp_tableoption 存儲過程啟用 text in
row 選項。
⑩ SQL資料庫里這個圖是什麼東西,可以在SQL中找出來嗎
對著資料庫表,右鍵,點設計,就有你的這個界面了