Sub CreateRequest As DBRequestManager
' Por cada solicitud, se crea un nuevo DBRequest...
Dim req As DBRequestManager
req.Initialize(Me, rdcLink)
Return req
End Sub
Sub CreateCommand(Name As String, Parameters() As Object) As DBCommand
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = Name
If Parameters <> Null Then cmd.Parameters = Parameters
Return cmd
End Sub
Sub Button1_Click
Dim req As DBRequestManager = CreateRequest
Dim cmd As DBCommand = CreateCommand("create_table_animals", Null)
Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob)
If j.Success Then
ToastMessageShow("Tabla creada correctamente",True)
Else
Log("ERROR: " & j.ErrorMessage)
End If
j.Release
End Sub
Mira que error te da en B4J en vez de en B4A.
es decir, antes de ponerse a trabajar sobre el jar que generes, es bueno tener B4J corriendo a la vez que B4A, asi ves los errores tb que la base de datos le pasa a B4J
Viendo ahora tu código, no sé si has copiado el ejemplo de Erel o lo has creado tú.
según el tutorial de RDC (el antecesor de jRDC2)
Non-select commands are sent with ExecuteCommand (single command) or ExecuteBatch (any number of commands)
es decir, como el comando que estas ejecutando no es un select, deberias usa executecommand en vez de executequery si no me equivoco.
A ver, jRDC2 es un servidor hecho en B4J, tu lo has compilado en B4J y has copiado tu jar en tu servidor y lo has ejecutado. Pero eso es cuando ya esta en produccion. En desarrollo no te hace falta ejecutar ese jar, tu ejecutas B4J, le das a run y ya estaria ejecutandose en tu ordenador tu servidor jRDC2. Tu app B4A haces que apunte a tu direccion de tu pc con B4J, asi puedes ir haciendo cambios sobre la marcha. Una vez que todo funciona, ya compilas tu jar y lo pones en tu VPS y apuntas desde tu app a ese servidor.Que tiene que ver B4J
Si te fijas en el ejemplo, mas abajo pone:NO SE USAR executeComand
Sub InsertRecord (Name As String)
Dim cmd As DBCommand = CreateCommand("insert_animal", Array(Name, Null))
Dim j As HttpJob = [B]CreateRequest.ExecuteBatch(Array(cmd), Null)[/B]
Wait For(j) JobDone(j As HttpJob)
If j.Success Then
Log("Inserted successfully!")
End If
j.Release
End Sub
"Buenos días" Sergio:como tengo que APUNTAR mi app B4A a la direccion local del jRDC,
#DATABASE CONFIGURATION
DriverClass=com.mysql.jdbc.Driver
JdbcUrl=jdbc:mysql://localhost:3306?characterEncoding=utf8 #para el caso de que estén en el mismo ordenador
#O
JdbcUrl=jdbc:mysql://la.ip.del.VPS:3306?characterEncoding=utf8 #para el caso de que estén en ordenadores distintos el servidor jRDC2 y el de la base de datos
Prueba esta web, que las traducciones son bastante buenas:No comprendo muy bien ingles
Wait For (req) req_Result(res As DBResult)
For Each row() As Object In res.Rows
Log(row(0)) 'Aquí si cada línea que te devuelve la consulta, tiene un solo campo, sólo tendrás row(0), sino, pues cada campo será row(1), row(2), etc...
Next
Sub btnAcceder_Click
Dim cUsrIng, cPasIng As String
Dim lLogin = False As Boolean
cUsrIng = EditText1.Text
cPasIng = EditText2.Text
If cUsrIng = "" Or cPasIng = "" Then
MsgboxAsync("Es necesario Usuario y/o Contraseña válidos","Acceso al sistema...")
EditText1.RequestFocus
Return
End If
'Aqui leo todos los Usuarios del Sistema
'***************************************
ProgressDialogShow("Procesando...espere...")
Dim cTexto, cUsr, cPas, cBnd As String
Dim req As DBRequestManager = CreateRequest
Dim cmd As DBCommand = CreateCommand("select_usuarios", Null)
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)
'trabajar con el resultado
req.PrintTable(res)
For Each row() As Object In res.Rows
'Log("Yo: " & row(0)) 'Aquí si cada línea que te devuelve la consulta, tiene un solo campo, sólo tendrás row(0), sino, pues cada campo será row(1), row(2), etc...
cTexto = row(0) 'Obtengo el contenido del primer campo (puede haber varios campos en la consulta)
'Log("Texto: " & cTexto)
cUsr = cTexto.SubString2(0,19) '[20] Obtengo el Usuario
cBnd = cTexto.SubString2(20,23) '[4] Obtengo el Estado (Habilitado o no)
cPas = cTexto.SubString2(24,40) '[16] Obtengo la Contraseña
'Log("Usuario: " & cUsr & " , " & "Pass: " & cPas & " , " & "Estado: " & cBnd)
cUsr = cUsr.Replace(".","") 'Quito los puntos [.] del texto
cBnd = cBnd.Replace(".","")
cPas = cPas.Replace(".","")
'Log("Usuario: " & cUsr & " , " & "Pass: " & cPas & " , " & "Estado: " & cBnd)
If cUsrIng = cUsr And cPasIng = cPas Then
If cBnd = "S" Then
lLogin = True
Else
lLogin = False
End If
Exit
End If
Next
ProgressDialogHide
If lLogin =True Then
MsgboxAsync("Acceso PERMITIDO !!!","Acceso al sistema...")
Else
If cBnd = "N" Then
MsgboxAsync("Usuario DESABILITADO." & CRLF & "Consulte al administrador.", _
"Acceso al sistema...")
EditText1.Text = ""
EditText2.Text = ""
Else
MsgboxAsync("Usuario y/o contraseña NO Válido !!!","Acceso al sistema...")
End If
EditText1.RequestFocus
End If
Else
Log("ERROR: " & j.ErrorMessage)
End If
j.Release
End Sub
Ya te voy a reñir eh, jeje? Abre un nuevo hilo con nuevas dudas para que este no se haga interminable.Bueno, ahora necesito si tu sabes, como hacer para que un EditBox, acepte el texto todo en mayuscula al ingresar. Hay alguna propiedad tipo UPPERCASE o algo asi??
Otra sugerencia es separar los datos por comas (u otro texto) y utilizar Split, de esta formaActualmente en mi sistema de Gestión, utilizo SubStr(variable,x,y) y obtengo separadamente los Nombres, Contraseñas, y flag....
¿¿¿Como hago esto cn B4A ??? Como obtengo los Nombres y Contraseñas para poder "analizar" si el Usuario es válido ???
Regex.Split(",", Registro)(0) 'Nombre
Regex.Split(",", Registro)(1) 'Contraseña
Oye Sergio:
Lo que no entiendo de tu código es por qué haces un select de todos los usuarios y los comparas con el usuario que está intentando loguearse, en vez de hacer un select solo del usuario que se está intentando loguear.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?