vb6.0 局域网存储问题

程序在局域网电脑上拍照照片存储到本地D盘,然后利用 api CopyFile函数又将照片复制到了局域网服务器上的D盘文件夹,据了解照片存储在SQL会占用很大空间且对数据库有影响,所以暂时就这样操作了。现在想实现一个功能 就是在局域网电脑上 做一个查询,利用图片的名字查询局域网服务器的照片且图片显示在窗体上,怎么弄 是不是用将图片的路径放到SQL数据库 怎么实现,请老师讲解,谢谢 最好写上代码
Dim sFile As String

sFile = "D:\image\" & lingjiandabiaohaoma & ".bmp"
Call Form2.ezVidCap1.SaveDIB(sFile)
copytupian = CopyFile("D:\image\" & lingjiandabiaohaoma & ".bmp", "\\192.168.1.306\test\" & lingjiandabiaohaoma & ".bmp", 0)
If copytupian = 0 Then
MsgBox "失败"
Else
MsgBox "成功"
End If

局域网共享文件夹内的文件处理跟本机硬盘中的文件是一样处理的。比如要把局域网另一台电脑的共享目录内的某张图片显示在图片框中,可以这样:

Picture1.Picture = LoadPicture("\\192.168.1.306\test\" & lingjiandabiaohaoma & ".bmp")

补充一点:要把本机文件复制到局域网服务器硬盘中,也用不着API函数啊,用VB本身的命令就行了:
FileCopy "D:\image\" & lingjiandabiaohaoma & ".bmp", "\\192.168.1.306\test\" & lingjiandabiaohaoma & ".bmp"追问

还有就是可能当前网络不好306上图片没有, 那可以能就报错了。 你给加几个判断如果文件不存在,输错了 给个提示 而不是报错 ,因为这个功能我想单独使用

追答

If Dir("\\192.168.1.306\test\" & lingjiandabiaohaoma & ".bmp")="" Then
MsgBox "图片文件不存在!"
Else
Picture1.Picture = LoadPicture("\\192.168.1.306\test\" & lingjiandabiaohaoma & ".bmp")
End If

写完了才发现,IP地址中怎么可能有306的?不可能大于255的啊?随便举的例子吗?

追问

恩 举个例子。 你就等于空 就报错 只是一种情况 ,比如我的文件号是11 ,你输入的是22,程序也报错啊。所以这种方式不好,你说呢 没法判断,我想还是把文件放到sql 数据判断有没有 多保险??我连接数据库将 我拍照的文件号 填到数据库中,然后我在查询的时候利用数据库的文件名调图片 这不是很好?。但是不知道怎么弄啊 ,你帮我想想

追答

文件不存在和输错了,意思都是一样的啊,文件名输错了那自然这个文件就不存在了啊。

追问

晕死 , 你的判断不对啊 你的只是在文件名是空的时候是错的, 只要不是空 ,就不报错明白了吗

追答

只要文件是不存在的(不管是本地硬盘文件还是局域网文件),dir()函数的返回值就是空字符串。

比如说
如果 \\192.168.1.xxx\test\123.bmp 这个文件是确实存在的,
那么dir("\\192.168.1.xxx\test\123.bmp")的值是"123.bmp";

而如果 \\192.168.1.xxx\test\123.bmp 这个文件是不存在的,
那么dir("\\192.168.1.xxx\test\123.bmp")的值是""。

话说你确实试过了吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-24
不一定需要将路径保存在SQL数据库里。

但是你要先知道服务器的存放照片的文件夹路径,就像你代码里的:\\192.168.1.306\test\

你可以利用VB的dir函数来查询文件夹里的图片文件。

你可以参看如下代码:
Sub a()
Dim fn As String
fn = Dir("\\192.168.1.306\test\*.bmp")
While fn <> ""
MsgBox fn
fn = Dir
Wend
End Sub追问

先谢谢, 如果查到了 怎么显示在窗体上,查不到怎么办, 说全一点,最好都带上注释

相似回答