Jump to content

PoLLo

Members
  • Content Count

    1
  • Joined

  • Last visited

Posts posted by PoLLo


  1. Hi,

    I managed how to get data from database using read_db function from activex.dll in vb6. I want to read whith copymemory function a float value from database but i get a large decimal number with cientific notation. Also i cannot read the entire database, so im doing it in groups of 19 cuz if i do 20 i get an error "9 Subscript out of range". Here is my code:

     

    Private Sub LeerBD()
        Dim Valores() As Byte
        Dim i As Integer
        Dim iFecha As String
        Dim iHora As String
        Dim iTipo As String
        Dim iLote As Long
        Dim iTemCam As Double
        Dim iHumedad As Integer
        Dim iPresion As Integer
        Dim iPeso As Double
        Dim iEst As String
        Dim Pointer As Long
        Dim grupo As Long
        
        On Error GoTo mal
        
        For grupo = 0 To 101949 Step 19 * 51
        
            Call mComDriver.Read_DB(grupo, 19, 51, 51, Valores)
            Pointer = 0      
            For i = 1 To 19
                iFecha = PointerToString(VarPtr(Valores(Pointer)))
                Pointer = Pointer + 10
                iHora = PointerToString(VarPtr(Valores(Pointer)))
                Pointer = Pointer + 10
                iTipo = PointerToString(VarPtr(Valores(Pointer)))
                Pointer = Pointer + 10
                Call CopyMemory(iLote, Valores(Pointer), 4)
                Pointer = Pointer + 4
                Call CopyMemory(iTemCam, Valores(Pointer), 4)
                Pointer = Pointer + 4
                Call CopyMemory(iHumedad, Valores(Pointer), 2)
                Pointer = Pointer + 2
                Call CopyMemory(iPresion, Valores(Pointer), 2)
                Pointer = Pointer + 2
                Call CopyMemory(iPeso, Valores(Pointer), 4)
                Pointer = Pointer + 4
                iEst = PointerToString(VarPtr(Valores(Pointer)))
                Pointer = Pointer + 5
                Debug.Print iFecha & "-" & iHora & "-" & iTipo & "-" & iLote & "-" & iTemCam & "-" & iHumedad & "-" & iPresion & "-" & iPeso & "-" & iEst
            Next i
        Next grupo
        Exit Sub
    mal:
        MsgBox "[" & Err.Number & "] " & Err.Description, vbCritical, "Error"
    End Sub

    the results for iTemCam or iPeso are like this:

    8.39516345413446E-320

    1.27321882187115E-314

    Any ideas what im doing wrong?

×
×
  • Create New...