JdbcSQL com campo BLOB

Wendell Carneiro Mendes

Member
Licensed User
Longtime User
Boa noite

Fiz um pequeno app para uso próprio, conectando a um banco de dados MS SQL SERVER remoto através de um IP fixo.
Uso o JdbcSQL e tudo funciona perfeitamente bem, mas não consigo abrir um campo imagem (BLOB) para um imageview.
Achei vários exemplos, mas todos usam banco de dados local.
Uso o seguinte código:

B4X:
Dim sf As Object = msSQLDADOS.ExecQueryAsync("msSQLDADOS", "SELECT Photo FROM Produtos Where  idProduto = '000004'" , Null)
Wait For (sf) msSQLDADOS_QueryComplete (Success As Boolean, Crsr As JdbcResultSet)
If Success = True Then
    Do While Crsr.NextRow
        Dim Buffer() As Byte = Crsr.GetBlob("Photo")
        If Buffer <> Null And Buffer.Length > 1 Then
            Dim IpSt As InputStream
            Dim Bitmap1 As Bitmap
            IpSt.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
            Bitmap1.Initialize2(IpSt)
            IpSt.Close
            Activity.SetBackgroundImage(Bitmap1)
        End If
    Loop
End If

O erro retornado é o seguinte (no código acima seria linha 10) :
"Bitmap1.Initialize2(IpSt)"

Error occurred on line: 1353 (Main)
java.lang.RuntimeException: Error loading bitmap.
at anywheresoftware.b4a.objects.drawable.CanvasWrapper$BitmapWrapper.Initialize2(CanvasWrapper.java:539)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:777)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:354)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:146)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
at anywheresoftware.b4a.shell.DebugResumableSub$RemoteResumableSub.resume(DebugResumableSub.java:22)
at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:267)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:139)
at anywheresoftware.b4a.BA$2.run(BA.java:387)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8751)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Alguém poderia me ajudar?

Grato desde já
 

asales

Expert
Licensed User
Longtime User
Olá Wendell.
Vi que você resolveu sua dúvida aqui:
Esta parte em português do fórum é pouco frequentada.
Várias vezes é melhor colocar a pergunta no fórum em inglès, para ter uma resposta mais rápida.
 
Top