6个回答
展开全部
我不清楚你的意思是不是将图片存放在ACCESS数据库中?
如果是:
1、首先在数据表中建立一个字段,这个字段的数据格式是:“OLE 对象”,也就是说必须就图片的格式转换成二进制格式进行存储。
2、第二步是图片的选择,采用下面的方法:
<form ACTION="ZJZP1.ASP?ID=<%=ID%>" METHOD="POST" enctype="multipart/form-data">
<input TYPE="FILE" NAME="FI1" size="20">
<INPUT TYPE="Submit" onclick="return CheckLogin(this.form)" VALUE="上传图片">
</form>
在硬盘中选择图片,建议图片的格式最好是.gif或.jpg格式的。
3、
<!--#include virtual="/(连接数据库的文件名).asp"-->
<%
(存储图片的序号的变量)=request("ID")
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)
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Select * From (存储图片的数据表) WHERE ID="& (存储图片的序号的变量) &"",conn,3,3
rs("(存储图片的字段)").appendchunk mydata
rs("(判别图片是否存储的字段-字段格式:是/否")=True
rs.update
rs.close
set rs=nothing
%>
好的,现在你已经将图片存储到ACCESS数据库中了。
如果要读出,必须使用度二进制数据的专用代码。
如果是:
1、首先在数据表中建立一个字段,这个字段的数据格式是:“OLE 对象”,也就是说必须就图片的格式转换成二进制格式进行存储。
2、第二步是图片的选择,采用下面的方法:
<form ACTION="ZJZP1.ASP?ID=<%=ID%>" METHOD="POST" enctype="multipart/form-data">
<input TYPE="FILE" NAME="FI1" size="20">
<INPUT TYPE="Submit" onclick="return CheckLogin(this.form)" VALUE="上传图片">
</form>
在硬盘中选择图片,建议图片的格式最好是.gif或.jpg格式的。
3、
<!--#include virtual="/(连接数据库的文件名).asp"-->
<%
(存储图片的序号的变量)=request("ID")
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)
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "Select * From (存储图片的数据表) WHERE ID="& (存储图片的序号的变量) &"",conn,3,3
rs("(存储图片的字段)").appendchunk mydata
rs("(判别图片是否存储的字段-字段格式:是/否")=True
rs.update
rs.close
set rs=nothing
%>
好的,现在你已经将图片存储到ACCESS数据库中了。
如果要读出,必须使用度二进制数据的专用代码。
展开全部
ole 字段
ado 的 appendchunk 和getchunk操作,代码如下:
该范例使用 AppendChunk 和 GetChunk 方法用其他记录中的数据填写图像字段。
Public Sub AppendChunkX()
Dim cnn1 As ADODB.Connection
Dim rstPubInfo As ADODB.Recordset
Dim strCnn As String
Dim strPubID As String
Dim strPRInfo As String
Dim lngOffset As Long
Dim lngLogoSize As Long
Dim varLogo As Variant
Dim varChunk As Variant
Const conChunkSize = 100
' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn
' 打开 pub_info 表。
Set rstPubInfo = New ADODB.Recordset
rstPubInfo.CursorType = adOpenKeyset
rstPubInfo.LockType = adLockOptimistic
rstPubInfo.Open "pub_info", cnn1, , , adCmdTable
' 提示复制徽标。
strMsg = "Available logos are : " & vbCr & vbCr
Do While Not rstPubInfo.EOF
strMsg = strMsg & rstPubInfo!pub_id & vbCr & _
Left(rstPubInfo!pr_info, InStr(rstPubInfo!pr_info, ",") - 1) & _
vbCr & vbCr
rstPubInfo.MoveNext
Loop
strMsg = strMsg & "Enter the ID of a logo to copy:"
strPubID = InputBox(strMsg)
' 将徽标大块复制到变量中。
rstPubInfo.Filter = "pub_id = '" & strPubID & "'"
lngLogoSize = rstPubInfo!logo.ActualSize
Do While lngOffset < lngLogoSize
varChunk = rstPubInfo!logo.GetChunk(conChunkSize)
varLogo = varLogo & varChunk
lngOffset = lngOffset + conChunkSize
Loop
' 从用户处得到数据。
strPubID = Trim(InputBox("Enter a new pub ID:"))
strPRInfo = Trim(InputBox("Enter descriptive text:"))
' 添加新记录,大块复制徽标。
rstPubInfo.AddNew
rstPubInfo!pub_id = strPubID
rstPubInfo!pr_info = strPRInfo
lngOffset = 0 ' 重置位移。
Do While lngOffset < lngLogoSize
varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _
conChunkSize)
rstPubInfo!logo.AppendChunk varChunk
lngOffset = lngOffset + conChunkSize
Loop
rstPubInfo.Update
' 显示新添加的数据。
MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _
"Description: " & rstPubInfo!pr_info & vbCr & _
"Logo size: " & rstPubInfo!logo.ActualSize
' 删除新记录,因为这只是演示。
rstPubInfo.Requery
cnn1.Execute "DELETE FROM pub_info " & _
"WHERE pub_id = '" & strPubID & "'"
rstPubInfo.Close
cnn1.Close
End Sub
ado 的 appendchunk 和getchunk操作,代码如下:
该范例使用 AppendChunk 和 GetChunk 方法用其他记录中的数据填写图像字段。
Public Sub AppendChunkX()
Dim cnn1 As ADODB.Connection
Dim rstPubInfo As ADODB.Recordset
Dim strCnn As String
Dim strPubID As String
Dim strPRInfo As String
Dim lngOffset As Long
Dim lngLogoSize As Long
Dim varLogo As Variant
Dim varChunk As Variant
Const conChunkSize = 100
' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn
' 打开 pub_info 表。
Set rstPubInfo = New ADODB.Recordset
rstPubInfo.CursorType = adOpenKeyset
rstPubInfo.LockType = adLockOptimistic
rstPubInfo.Open "pub_info", cnn1, , , adCmdTable
' 提示复制徽标。
strMsg = "Available logos are : " & vbCr & vbCr
Do While Not rstPubInfo.EOF
strMsg = strMsg & rstPubInfo!pub_id & vbCr & _
Left(rstPubInfo!pr_info, InStr(rstPubInfo!pr_info, ",") - 1) & _
vbCr & vbCr
rstPubInfo.MoveNext
Loop
strMsg = strMsg & "Enter the ID of a logo to copy:"
strPubID = InputBox(strMsg)
' 将徽标大块复制到变量中。
rstPubInfo.Filter = "pub_id = '" & strPubID & "'"
lngLogoSize = rstPubInfo!logo.ActualSize
Do While lngOffset < lngLogoSize
varChunk = rstPubInfo!logo.GetChunk(conChunkSize)
varLogo = varLogo & varChunk
lngOffset = lngOffset + conChunkSize
Loop
' 从用户处得到数据。
strPubID = Trim(InputBox("Enter a new pub ID:"))
strPRInfo = Trim(InputBox("Enter descriptive text:"))
' 添加新记录,大块复制徽标。
rstPubInfo.AddNew
rstPubInfo!pub_id = strPubID
rstPubInfo!pr_info = strPRInfo
lngOffset = 0 ' 重置位移。
Do While lngOffset < lngLogoSize
varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _
conChunkSize)
rstPubInfo!logo.AppendChunk varChunk
lngOffset = lngOffset + conChunkSize
Loop
rstPubInfo.Update
' 显示新添加的数据。
MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _
"Description: " & rstPubInfo!pr_info & vbCr & _
"Logo size: " & rstPubInfo!logo.ActualSize
' 删除新记录,因为这只是演示。
rstPubInfo.Requery
cnn1.Execute "DELETE FROM pub_info " & _
"WHERE pub_id = '" & strPubID & "'"
rstPubInfo.Close
cnn1.Close
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
想实现往Access中写入图片。开始时这样写:
var ms:tmemorystream;
jp:tbitmap;
begin
ms:=tmemorystream.Create;
jp:=tbitmap.Create;
image1.Picture.Bitmap.SaveToStream(ms);
jp.LoadFromStream(ms);
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into tab (pic) values(:ppp)');
Parameters.ParamByName('ppp').LoadFromStream(ms,ftVarBytes);
ExecSQL;
end;
end;
var ms:tmemorystream;
jp:tbitmap;
begin
ms:=tmemorystream.Create;
jp:=tbitmap.Create;
image1.Picture.Bitmap.SaveToStream(ms);
jp.LoadFromStream(ms);
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into tab (pic) values(:ppp)');
Parameters.ParamByName('ppp').LoadFromStream(ms,ftVarBytes);
ExecSQL;
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设:数据类型为
OLE对象
可插入图片
然后,要插入图片的框里,右键单击,选“插入对象...”,选“由文件创建”
浏览...
选“连接”,
确定。
注:图片格式为:BMP
OLE对象
可插入图片
然后,要插入图片的框里,右键单击,选“插入对象...”,选“由文件创建”
浏览...
选“连接”,
确定。
注:图片格式为:BMP
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
wwwww
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |