Spanish jrdc2 con B4J

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Tengo este error al intentar registrar datos, si alguien me puede guiar para solucionar esto, gracias

upload_2017-11-25_22-43-17.png
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
No recuerdo de donde lo descargue pero este parece ser el correcto:
 

Attachments

  • jRDC2.zip
    5.3 KB · Views: 250

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Ahora si.. ya para el cliente como debiera ser
he probado con los 2 y sigue el mismo error

1 reqManager.Initialize(Me, "http://127.0.0.1:10199/test")
2 reqManager.Initialize(Me, "http://127.0.0.1:10199/?test")

?


Sub JobDone(Job As HttpJob)
If Job.Success = False Then
Log("Error: " & Job.ErrorMessage) ERROR http://127.0.0.1:10199 Refused
Else
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
reqManager.PrintTable(result)
End If
End If
Job.Release
End Sub
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
err no!

http://127.0.0.1:10199/test
Esta es solo para probar que te estés conectando correctamente a la base y solo lo puedes hacer desde el navegador. una vez aqui recibiste la frase "connection successful" entonces ya puedes probar en el cliente.

dejame buscar un codigo simple para probar la conexion en android.

(ya vas al 70% de esto, vas bien)
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Listo!

en la variable :

B4X:
    Private rdcLink As String = "http://192.168.1.38:10199/rdc"
pon la ip de tu computadora no 127.0.0.1
 

Attachments

  • ClientJRDCAndroid.zip
    10.1 KB · Views: 250

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
OH!

Este ejemplo supone que en tu servidor RDC existe un comando llamado select_animal que recibe un parametro que es el ID. solo acoplalo a tus necesitades
 

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Consulta Amigo..cuando este todo bien.. que al parecer estoy encaminado correctamente, todas la tareas sobre base de datos se deben escribir en el archivo de configuración, Insert, Update, Select, ??
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Si asi es.

A mi se me hace un poco molesto estar haciendo eso sobre todo cuando las query son de varios pisos, yo veria alguna otra forma de jalar las queries.
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Puedes modificar el JRDC2 para que tome las queries de otro lado, por ejemplo que las crees en el ide y las guardes en un mapa. con smart strings es facil, algo asi:

B4X:
    Dim query As String = $"
        SELECT id, cbarras, descripcion, precio_menudeo
            FROM productos
        WHERE cbarras = ? or descripcion LIKE ?
        ORDER BY descripcion
    "$
 

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Amigo, este error trae JobDone en su variable j.success

java.net.SocketTimeoutExcepcyion.connect timed Out



Sub GetRecord (id As Int) As ResumableSub
Dim req As DBRequestManager = CreateRequest
Dim cmd As DBCommand = CreateCommand("create_table", Array(id))
'req.ExeucteQuery returns a HttpJob. The returned HttpJob is used as the sender filter.
Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob)
If j.Success Then
req.HandleJobAsync(j, "req")
Wait For (req) req_Result(res As DBResult)
'work with result
' req.PrintTable(res)
Return res
Else
Msgbox(j.ErrorMessage,"eRR") ' Log("ERROR: " & j.ErrorMessage)
End If
j.Release
Dim res As DBResult = Null
Return res
End Sub
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Quiere decir que el servidor no respondió a tu petición. Puede significar que pusiste la ip mal, el puerto esta cerrado, no estás en la misma sub red.

Yo apostaría al puerto.
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
entrada y salida los 2.

puedo ver tu variable rdclink del cliente?

si ya tienes abiertos los puertos en el firewall tendriamos que ver que otra cosa se nos esta escapando.
 
Top