當前位置:首頁 » 編程語言 » sql怎麼傳圖值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql怎麼傳圖值

發布時間: 2023-01-02 20:49:20

㈠ 怎樣把圖片存入sql資料庫表中

一、先來熟悉一下將要使用的對象方法:

  1. 用來獲取上一個頁面傳 遞過來的數據一般是使用Request對象。同樣的,我們也可以使用Request對象 來獲取上傳上來的文件數據,使用的方法是Request.BinaryRead()。

  2. 要從資料庫中讀出來圖片的數據顯示到網頁上面要用到的方法是:Request.BinaryWrite()。

二、在得到了圖片的數據,要保存到資料庫中的時候,不可以直接使用Insert語句對資料庫進行操作,而是要使用ADO的AppendChunk方法。

  1. 同樣的,讀出資料庫中的圖片數據,要使用GetChunk方法。

  2. 各個方法的具體語法如下:

*Request.BinaryRead語法:

variant=Request.BinaryRead(count)

參數

variant

返回值保存著從客戶端讀取到數據。

count

指明要從客戶端讀取的數據量大小,這個值小於或者等於使用方法

Request.TotalBytes得到的數據量。

*Request.BinaryWrite語法:

Request.BinaryWritedata

參數

data

要寫入到客戶端瀏覽器中的數據包。

*Request.TotalBytes語法:

variant=Request.TotalBytes

參數

variant

返回從客戶端讀取到數據量的位元組數。

*AppendChunk語法

將數據追加到大型文本、二進制數據Field或Parameter對象。

object.AppendChunkData

參數

objectField或Parameter對象

Data變體型,包含追加到對象中的數據。

說明

使用Field或Parameter對象的AppendChunk方法可將長二進制或字元數

據填寫到對象中。在系統內存有限的情況下,可以使用AppendChunk方法對長

整型值進行部分而非全部的操作。

*GetChunk語法

返回大型文本或二進制數據Field對象的全部或部分內容。

variable=field.GetChunk(Size)

返回值

返回變體型。

參數

Size長整型表達式,等於所要檢索的位元組或字元數。

說明

使用Field對象的GetChunk方法檢索其部分或全部長二進制或字元數據。

在系統內存有限的情況下,可使用GetChunk方法處理部分而非全部的長整型

值。

GetChunk調用返回的數據將賦給「變數」。如果Size大於剩餘的數據,則

GetChunk僅返回剩餘的數據而無需用空白填充「變數」。如果欄位為空,則

GetChunk方法返回Null。

每個後續的GetChunk調用將檢索從前一次GetChunk調用停止處開始的數

據。但是,如果從一個欄位檢索數據然後在當前記錄中設置或讀取另一個欄位

的值,ADO將認為已從第一個欄位中檢索出數據。如果在第一個欄位上再次調

用GetChunk方法,ADO將把調用解釋為新的GetChunk操作並從記錄的起始

處開始讀取。如果其他Recordset對象不是首個Recordset對象的副本,則

訪問其中的欄位不會破壞GetChunk操作。

如果Field對象的Attributes屬性中的adFldLong位設置為True,則可

以對該欄位使用GetChunk方法。

如果在Field對象上使用Getchunk方法時沒有當前記錄,將產生錯誤3021

(無當前記錄)。

三、設計資料庫,作為測試的資料庫結構如下(Access97):

欄位名稱類型描述

id自動編號主鍵值

imgOLE對象用來保存圖片數據

對於在MSSQLServer7中,對應的結構如下:

欄位名稱類型描述

idint(Identity)主鍵值

imgimage用來保存圖片數據

四、正式編寫純ASP代碼上傳部分了,首先,有一個提供給用戶的上傳界面,可以讓用戶選擇要上傳的圖片。代碼如下(upload.htm):

<html>

<body>

<center>

<formname="mainForm"enctype="multipart/form-data"

action="process.asp"method=post>

<inputtype=filename=mefile><br>

<inputtype=submitname=okvalue="OK">

</form>

</center>

</body>

</html>

注意代碼中黑色斜體的部分,一定要在Form中有這個屬性,否則,將無

法得到上傳上來的數據。

五、接下來,要在process.asp中對從瀏覽器中獲取的數據進行必要的處理,因為在process.asp中獲取到的數據不僅僅包含了想要的上傳上來的圖片的數據,也包含了其他的無用的信息,需要剔除冗餘數據,並將處理過的圖片數據保存到資料庫中,這里以Access97為例。具體代碼如下(process.asp):

<%

response.buffer=true

formsize=request.totalbytes

formdata=request.binaryread(formsize)

bncrlf=chrB(13)&chrB(10)

divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)

datastart=instrb(formdata,bncrlf&bncrlf)+4

dataend=instrb(datastart+1,formdata,divider)-datastart

mydata=midb(formdata,datastart,dataend)setconnGraph=server.CreateObject("ADODB.connection")

connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&

server.MapPath("images.mdb")&";uid=;PWD=;"

connGraph.Opensetrec=server.createobject("ADODB.recordset")

rec.Open"SELECT*FROM[images]whereidisnull",connGraph,1,3

rec.addnew

rec("img").appendchunkmydata

rec.update

rec.close

setrec=nothing

setconnGraph=nothing

%>

六、這樣就把上傳來的圖片保存到了名為images.mdb的資料庫中了,剩下的工作就是要將資料庫中的圖片數據顯示到網頁上面了。

一般在HTML中,顯示圖片都是使用<IMG>標簽,也就是<IMGSRC="圖片路徑">,但是圖片是保存到了資料庫中,「圖片路徑」是什麼呢?呵呵,其實這個SRC屬性除了指定路徑外,也可以這樣使用哦:

<IMGSRC="showimg.asp?id=xxx">

所以,要做的就是在showimg.asp中從資料庫中讀出來符合條件的數據,並返回到SRC屬性中就可以了,具體代碼如下(showimg.asp):

<%

setconnGraph=server.CreateObject("ADODB.connection")

connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&

server.MapPath("images.mdb")&";uid=;PWD=;"

connGraph.Open

setrec=server.createobject("ADODB.recordset")

strsql="selectimgfromimageswhereid="&trim(request("id"))

rec.openstrsql,connGraph,1,1

Response.ContentType="image/*"

Response.BinaryWriterec("img").getChunk(7500000)

rec.close

setrec=nothing

setconnGraph=nothing

%>

七、注意在輸出到瀏覽器之前一定要指Response.ContentType="image/*",以便正常顯示圖片。最後要注意的地方是,我的process.asp中作的處理沒有考慮到第一頁(upload.htm)中還有其他數據,比如<INPUTtype=tesxtname=userid>等等,如果有這些項目,process.asp就要注意處理掉不必要的數據。

㈡ sql2005怎麼向視圖中傳參

要想做一個 帶參數的視圖的話,
可以用 表值函數來處理.

下面是個 沒有參數的 表值函數的例子:

1> CREATE FUNCTION getHelloWorld()
2> RETURNS TABLE
3> AS
4> RETURN
5> SELECT 'Hello' AS A, 'World' AS B;
6> GO
1> SELECT * FROM getHelloWorld();
2> go
A B
----- -----
Hello World

(1 行受影響)

變成有參數的, 就是在參數那裡增加一個參數
下面的 SQL 語句中,增加一個 WHERE 欄位=@參數 的語句。

檢索的時候,就是
SELECT * FROM 表值函數(參數)

㈢ 怎麼在sql資料庫中的表裡邊添加圖片

1、打開開始菜單欄,在菜單欄上找到我們已經安裝的SQL server 2008,單擊打開它。

㈣ Sql Server中怎麼用text批量上傳圖片

你是用SqlServer什麼版本,2000?2005?2005中已經沒有這個程序了。但可直接對blob 數據類型進行操作:CREATE TABLE #BlobData(BlobData varbinary(max))

--insert blob into temp table
SET @SqlStatement =
N'
INSERT INTO #BlobData
SELECT BlobData.*
FROM OPENROWSET
(BULK ''' + @FileName + ''',
SINGLE_BLOB) BlobData'
EXEC sp_executesql @SqlStatement

--update
UPDATE dbo.MyTable
SET MyBlob = (SELECT BlobData FROM #BlobData)
WHERE MyTable.MyPK = @MyPK

DROP TABLE #BlobData
GO 如果你還是用2000,也就是text方式,參考一下代碼: 1 C:\Program Files\Microsoft SQL Server\MSSQL\Binn>text
2 TEXTCOPY Version 1.0
3 DB-Library version 8.00.194
4 Type the SQL Server to connect to: 220.**.**.*
5 Type your login: sa
6 Type your password: sa
7 Type the database: Proct
8 Type the table: Image
9 Type the text or image column: data
10 Type the where clause: where id=16
11 Type the file: c:\abc.gif
12 Type the direction ('I' for in, 'O' for out):I
13 Data copied into SQL Server image column from file 'c:\abc.gif'.

㈤ 在sql2005中如何直接插入圖片

如果你要把圖片存到資料庫里,那麼資料庫的類型就必須是
blob,
然後在程序中把圖片讀成流的形式放在byte[]中,最後才能insert
into.
就相當於復制圖片的過程.
如果你是在資料庫端操作,那麼必須用到專門上傳圖片到資料庫的工具.
以前學oracle時好像有這種工具.SQL太久沒碰了,不知道有沒有這種工具

㈥ 請問怎樣使用SQL2000往資料庫的一個列中加入jpg圖片能講得詳細些么新手求幫助!

1建立image欄位
2用程序讀取圖片文件,超過4k就循環處理
3存放在blob類型變數中
4用sql語句insert其他信息,然後再由updateblob專門上傳圖像欄位

updateblob aa set a2 = :b1 where a1= '1 ';

㈦ 給sql語句進行傳值的不同方法(傳值 :傳值)各寫一個java案列.

刪除不好做,因為你是一個文件內容的刪除。
可以用字元串數組來保存每一行的值,刪除了之後,再重新保存進去。
可以這樣做:比如說你的文件路徑:c:/a.txt
1.File file = new File("c:/a.txt");
2.BufferedReader reader = new BufferedReader(file);
3.byte[] strValue = new byte[(int)file.length()];
4.String str = reader.read(strValue);//按文件大小一次讀入
5.String rows = str.split("\r\n");//按換行符拆分,即數組的每一條,對應文件每一行的內容。
6.如果要刪除按條件刪除某一行,只需要判斷字元串數組是否存在這一行了,如果存在,替換為「」即可。
7.Writer writer = new FileWriter(file);
8.
for(int i=0;i<rows.length;i++){
writer.write(rows[i]);
}

只是分析了一下,具體步驟還是你來完成了。。

RandomAccessFile raf = new RandomAccess("wenjian.txt");
char ch[] = new char[3];
char to[] = ;
boolean get = false;
while(get){
raf.readChars(ch);
if(ch[0]=='d' && ch[1]=='d' && ch[2]=='s'){
get = true;
}
}
raf.seek(raf.getFilePointer() -6 );
raf.writeChars(to);

這個代碼就是把wenjian.txt中出現的第一個dds修改成ssx。
另外,站長團上有產品團購,便宜有保證

㈧ 怎樣把單個復選框里的圖片傳到SQL資料庫里

你別把圖片傳到伺服器去,只要傳圖片文件名或者代表該圖片的數字就可以了,
在你的資料庫里,每個圖像都有個icon的id來代表該圖片。 客戶端一上來,你就把該id,或者該文件名傳給客戶端,在客戶端那邊己經存了該圖片文件了。這樣客戶端收到圖片名稱或者id就能查找出具體圖片就可以顯示出來了。 上傳時也只要傳名字或id就可以了。
按你說的要是有上萬個用戶同時在線,每個用戶都不停傳圖片,那你的伺服器早就被拖死了,一張圖片的數據量比一個數字或一串字元文件名大多了。

你看QQ聊天的時候,一下傳那麼多QQ頭像,全國上億人用QQ頭像QQ表情聊天,那騰訊得買多少伺服器才跑得動啊

服務端早就預存了幾十種或幾百種表情頭像,客戶端也同時存了,雙方約定好了每一個圖像的文件名或者id值。客戶端第一次注冊的時候,或者更改的時候,只需要傳雙方約定好的id過去,伺服器端就知道了你要干什麼事了。