نمایش نتایج 1 تا 6 از 6

نام تاپیک: فراخوانی عکس از بانک اکسس ( با MSADO یا همان mdac)

  1. #1

    فراخوانی عکس از بانک اکسس ( با MSADO یا همان mdac)

    در برنامه ای که برای ایجاد ارتباط با بانک اکسس از MSADO استفاده می کنم کنترلهای Image و Picture‌ تصاویر را نشان نمی دهند و پیغام خطا صادر می شود. چگونه می توانم مشکلم را حل کنم.
    ( برای ذخیره عکسها از OLE استفاده کرم وسپس با کپی گیری از طریق برنامه ACDSee آنها را در بانک اکسس وارد کرده ام. در ضمن آیا روش بهتری هم هست؟ )

    با تشکر از شما
    :roll:

  2. #2
    ع.م.خ عزیز چندین بار هم در همین سایت و هم در وبلاگ خودم توضیحات کافی را داده ام. اما محض اطلاع شما، در این زمینه به تازگی مقاله ای را ترجمه کرده ام که بزودی در وبلاگ قرار می دهم. آدرس وبلاگ http://vblog.persianblog.com است. فکر می کنم تا فردا کار آن تمام خواهد شد. منتظر باشید.

  3. #3
    Lord Voldemort عزیز از ارسال جوابتان بسیار ممنونم. اگر ممکن است کمی در مورد نحوه ورود تصاویر به صورت باینری، کمی توضیح بدهید.

  4. #4
    لطفا کمک کنید !!!!!

  5. #5
    این کدها را امتحان کنید :
    Instructions: Copy the declarations and code below and paste directly into your VB project.

    Declarations:


    Option Explicit

    Const MAX_PATH = 255

    Private Declare Function GetTempPath Lib "kernel32" _
    Alias "GetTempPathA" (ByVal nBufferLength As Long, _
    ByVal lpBuffer As String) As Long
    Code:


    Public Function SavePictureToDB(PictControl As Object, _
    RS As Object, FieldName As String) As Boolean

    'PURPOSE: SAVES PICTURE IN IMAGEBOX, PICTUREBOX, OR SIMILAR
    'CONTROL TO RECORDSET RS IN FIELD NAME FIELDNAME

    'FIELD TYPE MUST BE BINARY (OLE OBJECT IN ACCESS)


    'SAMPLE USAGE
    'Dim sConn As String
    'Dim oConn As New ADODB.Connection
    'Dim oRs As New ADODB.Recordset
    '
    '
    'sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDb.MDB;Persist Security Info=False"
    '
    'oConn.Open sConn
    'oRs.Open "SELECT * FROM MYTABLE", oConn, adOpenKeyset, _
    adLockOptimistic
    'oRs.AddNew

    'SavePictureToDB Picture1, oRs, "MYFIELD"
    'oRs.Update
    'oRs.Close

    Dim oPict As StdPicture

    Dim sDir As String
    Dim sTempFile As String
    Dim iFileNum As Integer
    Dim lFileLength As Long

    Dim abBytes() As Byte
    Dim iCtr As Integer

    On Error GoTo ErrorHandler
    If Not TypeOf RS Is ADODB.Recordset Then Exit Function
    Set oPict = PictControl.Picture
    If oPict Is Nothing Then Exit Function

    'Save picture to temp file
    sDir = GetTempDir
    If sDir = "" Then sDir = "C:\"
    sTempFile = sDir & "0X2341KLZX.dat"
    SavePicture oPict, sTempFile

    'read file contents to byte array
    iFileNum = FreeFile
    Open sTempFile For Binary Access Read As #iFileNum
    lFileLength = LOF(iFileNum)
    ReDim abBytes(lFileLength)
    Get #iFileNum, , abBytes()
    'put byte array contents into db field
    RS.Fields(FieldName).AppendChunk abBytes()
    Close #iFileNum

    'Don't return false if file can't be deleted
    On Error Resume Next
    Kill sTempFile
    SavePictureToDB = True
    ErrorHandler:
    End Function

    Public Function LoadPictureFromDB(PictControl As Object, _
    RS As Object, FieldName As String) As Boolean

    'PURPOSE: LOADS PICTURE, SAVED AS BINARY DATA IN RECORDSET RS,
    'FIELD FieldName TO PICTUREBOX, IMAGEBOX (OR CONTROL
    'WITH SIMILAR INTERFACE)


    'SAMPLE USAGE
    'Dim sConn As String
    'Dim oConn As New ADODB.Connection
    'Dim oRs As New ADODB.Recordset
    '
    '
    'sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDb.MDB;Persist Security Info=False"
    '
    'oConn.Open sConn
    'oRs.Open "SELECT * FROM MyTable", oConn, adOpenKeyset,
    ' adLockOptimistic
    'LoadPictureFromDB Picture1, oRs, "MyFieldName"
    'oRs.Close

    Dim oPict As StdPicture
    Dim sDir As String
    Dim sTempFile As String
    Dim iFileNum As Integer
    Dim lFileLength As Long
    Dim abBytes() As Byte
    Dim iCtr As Integer

    On Error GoTo ErrorHandler
    If Not TypeOf RS Is ADODB.Recordset Then Exit Function
    sDir = GetTempDir
    If sDir = "" Then sDir = "C:\"
    sTempFile = sDir & "0X2341KLZX.dat"

    If Len(Dir$(sTempFile)) > 0 Then
    Kill sTempFile
    End If

    iFileNum = FreeFile
    Open sTempFile For Binary As #iFileNum
    lFileLength = LenB(RS(FieldName))


    abBytes = RS(FieldName).GetChunk(lFileLength&#41 ;
    Put #iFileNum, , abBytes()



    Close #iFileNum

    PictControl.Picture = LoadPicture(sTempFile)

    Kill sTempFile
    LoadPictureFromDB = True

    ErrorHandler:
    End Function

    Private Function GetTempDir() As String
    Dim sRet As String, lngLen As Long

    'create buffer
    sRet = String(MAX_PATH, 0)

    lngLen = GetTempPath(MAX_PATH, sRet)
    If lngLen = 0 Then Exit Function
    GetTempDir = Left$(sRet, lngLen)
    End Function


    از این اکتیوایکس هم می‌توانید استفاده کنید که راه ساده‌تری هست :‌

  6. #6
    آقای نوربالای عزیز ممنون!

تاپیک های مشابه

  1. Mdac
    نوشته شده توسط فاطمه هاشمیان در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 01 مرداد 1384, 23:57 عصر
  2. نقطه ضعف جدید MDAC
    نوشته شده توسط Inprise در بخش امنیت در شبکه
    پاسخ: 0
    آخرین پست: جمعه 17 بهمن 1382, 00:34 صبح
  3. MDAC رو از کجا باید پیدا کنم
    نوشته شده توسط archi در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: جمعه 03 بهمن 1382, 12:05 عصر
  4. نقطه ضعف امنیتی در MDAC
    نوشته شده توسط Inprise در بخش امنیت در شبکه
    پاسخ: 1
    آخرین پست: یک شنبه 28 دی 1382, 11:32 صبح
  5. پشتیبانی MDAC از اکسپلورر5
    نوشته شده توسط Mahdiseif در بخش برنامه نویسی در Delphi
    پاسخ: 13
    آخرین پست: سه شنبه 29 مهر 1382, 06:30 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •