大难题,数据库存储图片和access转oracle,能帮我解决的要多少分都可以

cxhyrh 2001-10-15 02:33:23
我要做的目的是:将JPG图片存储入oracle数据库,然后读出以网页显示
还有怎样把access数据库转成oracle数据库,帮帮我,急用
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
didibaba 2001-10-19
  • 打赏
  • 举报
回复
cxhyrh:我还在等咧!到底有没有希望拿分啊?
过几天在看一下。
didibaba 2001-10-16
  • 打赏
  • 举报
回复
cxhyrh:怎么不把分给我?
didibaba 2001-10-15
  • 打赏
  • 举报
回复
我知道了,你一定是没有引用microsoft activex data object 2.0 library 。
cxhyrh 2001-10-15
  • 打赏
  • 举报
回复
Sub FileToColumn(Col As ADODB.Field, DiskFile As String)
在请问一下,有这个过程之前要不要先引用什么东西,我也用过类同的,只是编译通不过
要做些什么,回答后不管有没有用都有分送
didibaba 2001-10-15
  • 打赏
  • 举报
回复
将图片存入数据库并不难,具体思路:
已二进制读打开文件,然后写入一个字段里。下列

1.把文件内容写到数据库中
Const BLOCKSIZE As Long = 4096
Sub FileToColumn(Col As ADODB.Field, DiskFile As String)
'从一个临时文件中获取数据,并把它保存到数据库中
'col为一个ADO字段,DiskFile为一个文件名,它可以为一个远程文件。
Dim strData() As Byte '声明一个动态数组
Dim NumBlocks As Long '读写块数
Dim FileLength As Long '文件长度
Dim LeftOver As Long '剩余字节数
Dim SourceFile As Long ‘文件句柄
Dim i As Long
SourceFile = FreeFile '获得剩余的文件句柄号
Open DiskFile For Binary Access Read As SourceFile '以二进制读方式打开源文件。
FileLength = LOF(SourceFile) '获得文件长度
If FileLength = 0 Then
Close SourceFile '关闭文件
Peedy.Speak DiskFile & " Empty or Not Found." ‘调用Msagent控件,提示信息
Else
NumBlocks = FileLength \ BLOCKSIZE ‘获得块数
LeftOver = FileLength Mod BLOCKSIZE ‘最后一块的字节数
Col.AppendChunk Null ‘追加空值,清除已有数据
ReDim strData(BLOCKSIZE) ‘从文件中读取内容并写到文件中。
For i = 1 To NumBlocks
Get SourceFile, , strData
Col.AppendChunk strData
Next I
ReDim strData(LeftOver)
Get SourceFile, , strData
Col.AppendChunk strData
Close SourceFile
End If
End Sub

2.从数据库中把文件内容读出来,并写到一个文件中。

Private Sub ColumnToFile(Col As ADODB.Field, DiskFile As String, rsset As Recordset)
'从数据库获得数据并把它们写到硬盘上的一个临时文件中。
'快的大小以4096为单位

Dim NumBlocks As Long '注释见上文
Dim LeftOver As Long '
Dim strData() As Byte

Dim DestFileNum As Long
Dim i As Long
Dim ColSize As Long

'确保你存取的不是一个空记录集
If Not rsset.EOF And Not rsset.BOF Then
ColSize = Col.ActualSize
'获得列的实际大小
'如果文件长度为零,将删除文件内容
If Len(Dir$(DiskFile)) > 0 Then
Kill DiskFile
End If
DestFileNum = FreeFile
Open DiskFile For Binary As DestFileNum
NumBlocks = ColSize \ BLOCKSIZE
LeftOver = ColSize Mod BLOCKSIZE
'把数据写到文件中
For i = 1 To NumBlocks
ReDim strData(BLOCKSIZE)
strData = Col.GetChunk(BLOCKSIZE)
Put DestFileNum, , strData
Next i

ReDim strData(LeftOver)
strData = Col.GetChunk(LeftOver)
Put DestFileNum, , strData
Close DestFileNum
End If
End Sub

但是要用在网页显示恐怕不行吧?反正我不知道。看你的意思,是想做一个可以让用户可以自己更新图片的网页。其实我也看过这方面的代码(一时间又找不到),具体做法是:
数据库内储存图片所在目录,把图片放在目录里,然后让客户登陆上传图片。
显示时用ASP读出图片路径名<img src=变量>

oracle 数据库没有用过,不过应该和sql server差不多吧。导入数据就可以转化成别的数据库啦。

如果你觉得我回答的不错,请给分。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧