最好是路径,用app.path这样不容易出错

解决方案 »

  1.   

    Option Explicit
    Dim en As rdoEnvironment
    Dim Qd As rdoQuery
    Dim Cn As rdoConnection
    Dim Rs As rdoResultset
    Dim SQL As String
    Dim DataFile As Integer, Fl As Long, Chunks As Integer
    Dim Fragment As Integer, Chunk() As Byte, I As Integer
    Const ChunkSize As Integer = 16384Private Sub Form_Load()
    Set en = rdoEnvironments(0)
    Set Cn = en.OpenConnection(dsname:="", _
    Connect:="UID=;PWD=;DATABASE=WorkDB;" _
    & ""Driver={SQL Server};SERVER=Betav486", _
    prompt:=rdDriverNoPrompt)
    Set Qd = Cn.CreateQuery("TestChunk", "Select * from 
       Chunks Where PName = ?")
    End Sub
    Private Sub LoadFromFile_Click()
    '
    '  将文件定位并为该文件设置文件名。
    '
    With CommonDialog1
       .Filter = "Pictures(*.bmp;*.ico)|*.bmp;*.ico"
       .ShowOpen
       FileName = .FileName
    End With
    End SubPrivate Sub ReadFromDB_Click()
    If Len(NameWanted) = 0 Then _
       NameWanted = InputBox("Enter name wanted", "Animal")
       Qd(0) = NameWanted
       Set Rs = Qd.OpenResultset(rdOpenKeyset, 
       rdConcurRowver)
    If Rs Is Nothing Or Rs.Updatable = False Then
    MsgBox "Can't open or write to result set"
    Exit Sub
    End If
    If Rs.EOF Then
    MsgBox "Can't find picture by that name"
    Exit Sub
    End If
    Description = Rs!Description
    DataFile = 1
    Open "pictemp" For Binary Access Write As DataFile
    Fl = Rs!Photo.ColumnSize
    Chunks = Fl \ ChunkSize
    Fragment = Fl Mod ChunkSize
    ReDim Chunk(Fragment)
    Chunk() = Rs!Photo.GetChunk(Fragment)
    Put DataFile, , Chunk()
    For I = 1 To Chunks
    ReDim Buffer(ChunkSize)
    Chunk() = Rs!Photo.GetChunk(ChunkSize)
    Put DataFile, , Chunk()
    Next I
    Close DataFile
    FileName = "pictemp"
    End SubPrivate Sub SaveToDB_Click()
    If Len(NameWanted) = 0 Then _
    NameWanted = InputBox("Enter name for this" _
    & " picture", "Animal")
    Qd(0) = NameWanted
    Set Rs = Qd.OpenResultset(rdOpenKeyset, _
    rdConcurRowver)
    If Rs Is Nothing Or Rs.Updatable = False Then
    MsgBox "Can't open or write to result set"
    Exit Sub
    End If
    If Rs.EOF Then
    Rs.AddNew
    Rs!PName = NameWanted
    If Description = "" Then  _
    Description = InputBox("Describe the picture", _ 
    "Don't care")
    'Rs!Description = Description
    Else
    Rs.Edit
    End If
    DataFile = 1
    Open FileName For Binary Access Read As DataFile
    Fl = LOF(DataFile)    ' 文件中数据的长度
    If Fl = 0 Then Close DataFile: Exit Sub
    Chunks = Fl \ ChunkSize
    Fragment = Fl Mod ChunkSize
    Rs!Photo.AppendChunk Null
    ReDim Chunk(Fragment)
    Get DataFile, , Chunk()
    Rs!Photo.AppendChunk Chunk()
    ReDim Chunk(ChunkSize)
    For I = 1 To Chunks
    Get DataFile, , Chunk()
    Rs!Photo.AppendChunk Chunk()
    Next I
    Close DataFile
    Rs.Update
    End SubPrivate Sub FileName_Change()
    Picture1.Picture = LoadPicture(FileName)
    End Sub
    这是MSDN中的一段例程(RDO),其他的差不多,关键是明白怎么做就行了.到MSDN中看看吧
      

  2.   

    to alinker(人生得意须尽欢 莫使金樽空对月) http://www.csdn.net/expert/topic/373/373294.shtm
      

  3.   

    Dim a() As Byte
    Open App.Path & "\" & "Excel1.xls" For Binary As #1a = InputB(LOF(1), #1)
    Close #1
    Data1.Recordset.MoveFirst
    Data1.Recordset.Edit
    Data1.Recordset.Fields(1) = a
    Data1.Recordset.Update
      

  4.   

    我的一个应用程序,SQL SERVER中存了大约10000张会员照片,没有影响
    什么速度。
      

  5.   

    利用资源文件进行工作 
    资源文件允许将应用程序特定版本的全部文本和位图收集到一起。这可以包括常数声明、图标、屏幕文本,以及可能在本地化版本之间或在修订版本或特定的配置之间发生变化的其它材料。向工程中添加资源
    可以使用资源编译器外接程序创建资源文件。编译过的资源文件带有 .res 扩展名。每个工程只能包含一个资源文件。资源文件实际上是由一系列独立的字符串、位图或者其它项目组成的,其中每一项都有一个唯一的标识符。标识符可能是 Long 类型或 String 类型,取决于资源所代表的数据类型。例如,字符串的标识符为 Long 型,而位图的标识符则为 Long 型或 String 型。如想在代码中检索资源,应知道每个资源的标识符。引用资源的函数参数可以使用 Variant 数据类型。要将新资源文件添加到您的工程中,请按照以下步骤执行: 从“工具”菜单中选择“资源编辑器”,将在资源编辑器窗口打开一个空的资源文件。注意  必须安装资源编辑器外接程序。有关安装外接程序的信息,请参阅“管理工程”中的“使用向导和外接程序”。
    在资源编辑器工具栏中选择“保存”按钮以保存资源文件。文件将被添加到“相关文档”部分下的“工程资源管理器”中。
    要将已存在的资源文件添加到您的工程中,请 
    从“工程”菜单中选择“添加新资源”。您的工程中任何已存在的资源文件将被替换。 
    警告  假如您对已存在的资源文件做任何修改,将可能影响使用此资源文件的其它工程。确保您将文件保存在一个新文件名下。注意  必须安装资源编辑器外接程序。有关安装外接程序的信息,请参阅“管理工程”中的“使用向导和外接程序”。详细信息 关于资源文件的详细信息,请参阅“国际化”中的“使用本地化资源文件”。注意 Windows 资源文件随 16 位或 32 位应用程序而不同,如果试图将一个 16 位资源文件添加到一个工程中,Visual Basic 将产生一条错误信息。为了将资源文件添加到工程中,可从“工程”菜单中选择“添加文件”命令,这与将别的文件添加至工程中完全一样。一个工程只能接受一个资源文件,如果试图添加第二个扩展名为 .res 的文件,将产生错误。在代码中使用资源
    Visual Basic 提供了三个函数从资源文件中检索数据以供在代码中使用。函数 描述 
    LoadResString 返回一个文本字符串。 
    LoadResPicture 返回一个 Picture 对象,例如位图、图标或光标。 
    LoadResData 返回一个 Byte 数组,用于象 .wav 之类的文件。 
    详细信息 请参阅相应函数主题。
    使用本地化资源文件
    Visual Basic 通过使用资源文件有效地把本地化信息从代码中分离出来。注意 工程中只能有一个资源文件,如果试图添加一个以上的资源文件 Visual Basic 将产生一个错误信息。把字符串保存在资源文件中的优点
    编写代码时,可以调用 LoadResString、LoadResPicture 和 LoadResData 函数代替对文字、图象和数据的引用。把这些元素存储在资源文件中有两大好处: 提高性能和增加空间,这是因为字符串、位图、图标和数据可以不必在调用窗体或模块时就全部加载,而可以按需要从资源文件中加载。
    把需要翻译的资源单独放在一个资源文件中,因此没有必要访问源代码或重新编译应用程序。 
    要创建资源文件,请按照以下步骤执行: 从“工程”菜单中选择“新资源文件”。 
    注意  该命令只有在资源编辑器外接程序加载的情况下才能使用。要加载资源管理器外接程序,请选择“外接程序”菜单中的“外接程序管理器”。在“外接程序管理器”对话框中,选择“VB6 资源编辑器”并复选“加载/卸载”。在“打开一个资源文件”对话框中,为资源文件输入一个名称。资源文件名称将被添加到“工程资源管理器”的“相关文档”节点。 
    Visual Basic 把具有 .res 扩展名的文件识别为资源文件。如果资源文件不具有正确的扩展名,Visual Basic 将不会加载它。相反地,任何具有 .res 扩展名的文件被加入到工程时都会被 Visual Basic 当作资源文件处理,如果该文件不具有标准的资源文件格式,Visual Basic 将在第一次使用资源文件支持函数(LoadResString、LoadResPicture 和 LoadResData)或试图编译成 .exe 文件时产生错误信息。试图添加 16 位的资源文件到工程中也会产生同样的错误信息。资源文件被添加到工程后,.res 文件将出现在“工程”窗口中。与窗体或模块不同,在 Visual Basic 中不能查看 .res 文件。该文件是标准的资源文件,可由 Microsoft Visual C++ 和其它大部分的 Windows 开发工具创建或使用。一旦在“文件”菜单中选中“生成 projectname.exe”一项,Visual Basic 将把该文件中的所有资源编译到 .exe 文件中作为 Windows 的资源。在编译 .exe 文件之前和之后,.res 文件都是标准的 Windows 资源文件,这意味着任何标准的 Windows 资源编辑器都可以加载该文件。要编辑资源文件,请按照以下步骤执行: 从“工具”菜单中选择“资源编辑器”。 
    注意  该命令仅在资源编辑器外接程序加载的情况下才能使用。要加载资源编辑器外接程序,请从“外接程序”菜单中选择“外接程序管理器”。在“外接程序管理器”对话框中,选择“VB6 资源编辑器”并复选“加载/卸载”框。从“资源编辑器工具栏”中选择一个按钮来编辑一个现存资源文件或添加一个新的。有关编辑资源文件的更详细信息,请参阅资源编辑器外接程序文档。 
    锁定资源文件
    Visual Basic 可以对 .res 文件进行文件锁定,以防止同时有几个应用程序使用该文件。在下列条件下 .res 文件将被锁定: Visual Basic 处于运行模式或中断模式。
    创建了一个 .exe 文件。 
    详细信息 关于如何使用资源文件开发多区域应用程序的示例,请参阅本章后面的“自动取款机应用程序示例”。 关于使用资源文件编程的背景资料,请参阅“再论编程”中的“利用资源文件进行工作”。
      

  6.   

    路径
    dll
    为什么不放到库里?
      

  7.   

    只有将图片放如数据库中,才是真正意义上的数据库
    存入数据库中,可用ado2.5的adodb.stream可实现。
    以下代码供你参考
    Public Sub savefile(ByVal tempfile As String)
        Dim mstream As ADODB.Stream
        Dim flen As Long
        adobanbenwenjian.Fields("wenjianming").value = tempfile
        Set mstream = New ADODB.Stream
        mstream.Type = adTypeBinary
        mstream.Open
        flen = FileLen(tempfile)
        If Len(tempfile) <> 0 Then
           mstream.LoadFromFile tempfile
           adobanbenwenjian.Fields("wenjian").value = mstream.Read
           Dim filever As clsfilever
           Dim rtnfilever As Variant
           Set filever = New clsfilever
           rtnfilever = filever.DisplayVerInfo(tempfile)
           adobanbenwenjian.Fields("banbenhao").value = rtnfilever(1)
           adobanbenwenjian.Fields("beizhu").value = rtnfilever(2)
           Set filever = Nothing
        End If
        Set mstream = Nothing
    End Sub
      

  8.   


      
    只有将图片放如数据库中,才是真正意义上的数据库
    存入数据库中,可用ado2.5的adodb.stream可实现。
    以下代码供你参考
    Public Sub savefile(ByVal tempfile As String)
    Dim mstream As ADODB.Stream
    Dim flen As Long
    adobanbenwenjian.Fields("wenjianming").value = tempfile
    Set mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
    flen = FileLen(tempfile)
    If Len(tempfile) <> 0 Then
    mstream.LoadFromFile tempfile
    adobanbenwenjian.Fields("wenjian").value = mstream.Read
    End If
    Set mstream = Nothing
    End Sub
     
      

  9.   

    用Ado的Stream对象吧,我写pdf模块时将几十兆的文件写入数据库的二进制字段也不过7到8秒,很快的。以下为示例代码:function fileToDatabase(byval rs as adodb.recordset,byval objfield as string, byval myfilename as   string) as boolean
    dim stream as stream
    set stream = new stream
    stream.loadfromfile myfilename
    rs("objfield").value=stream
    set stream=nothing
    end function具体实现我可以通过Email发给你,我的Email是:[email protected]
     stream
      

  10.   

    如果是网络应用,那放在目录中比较好,首先使用浏览器链接速度快,而且上传速度比较快。
    如果说到安全问题,这个因该不是问题,因为服务器都有安全设置,就看你的文件保存的位置了,如果你使用过微软的EXCHANGE2000你就可以看到,邮件的目录是不可以浏览的不论是在IIS里还是在资源管理器里。
      

  11.   


    如果是mdb那么:路径sql 看情况!
      

  12.   

    取决于系统的需求,如果访问量很频繁(比如公司Logo),那么存为路径。如果访问量不大(比如员工照片),那么存数据库比较好。