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?