Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
Conexion A BD SQLite3 (Solucionado)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Conexion A BD SQLite3 
 
Gracias Jesus funciona de maravilla es exactamente lo que necesito. Solo que ahora estoy buscando la funcion Find ( como la de VB), pero no se como aplicarla en el codigo, lo que necesito es buscar un valor menor mas cercano en la segunda columna y que me devuelva ese valor y el mayor para interpolar con los valores de la 1era columna (draft) . He buscadon pero hay poca info. solo encontre esto:
FUNCTION Find (Table AS String [, Request AS String, Arguments AS , ... ] ) AS Result
Pero no se como apicarlo.

me podrias dar una pista?

Saludos
 



 
Juan_ed - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Conexion A BD SQLite3 
 
Según la página oficial:

http://www.gambasdoc.org/help/comp/gb.db/connection/find

Connection.Find (gb.db)

FUNCTION Find ( Table AS String [ , Request AS String, Arguments AS , ... ] ) AS Result


Devuelve un objeto Result de sólo lectura para obtener registros de la tabla especificada.

    * Table es el nombre de la tabla.
    * Request es la cláusula WHERE de SQL para filtrar la tabla.
    * Arguments son entrecomillados automáticamente según la sintaxis SQL y sustituidos dentro de la cadena Request.

Por tanto, para usarlo en tu caso particular sería algo así:

result = conexion.Find("nombre_tabla", "campo2 < &1 AND campo2 > &2", variable1, variable2)


&1 y &2 son comodines que corresponden a los argumentos variable1 y variable2 respectivamente y se deben usar en ese orden. Puedes tener tantos como necesites. VariableX será del tipo adecuado al tipo de campo declarado al crear la tabla. Por último, el string que corresponde a Request es la cadena SQL que va justo después de la cláusula WHERE, que es realmente el filtro de búsqueda.

La cadena equivalente en SQL estándar sería:

"SELECT * FROM nombre_tabla WHERE campo2 < &1 AND campo2 > &2;"
'donde &1 y &2 serán valores numéricos


El objeto devuelto por esta función es de tipo Result, por lo que tendrás que evaluarlo como normalmente se hace, recorriéndolo como si fuera un array.

Espero que sea de utilidad,

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Conexion A BD SQLite3 
 
Gracias una vez mas por la ayuda. Este codigo me genero algunas preguntas y me disculpas si soy neofito en el tema pero no pierdo nada con hacerlas:

1.- este codigo

 result = conexion.Find("nombre_tabla", "campo2 < &1 AND campo2 > &2", variable1, variable2)

lo que dice es que va a buscar en la tabla "X" en el campo2 el valor menor cercano de la variable1 y el mayor cercano de la variable2 ?

2.- En este caso tengo 2 variables, pero yo tengo solo una variable que es el valor a buscar. Como lo uso para un solo valor a buscar

3.- el resulatdo es del tipo result quiere decir que debo manejarlo como array?. O sea debo usar index para obtener el valor? el resultado necesito usrarlo en una formula, o sea necesito un Single. Correcto?

se agradece la respuesta :

saludos
 



 
Juan_ed - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Conexion A BD SQLite3 
 
Juan_ed escribió: [Ver mensaje]
Gracias una vez mas por la ayuda. Este codigo me genero algunas preguntas y me disculpas si soy neofito en el tema pero no pierdo nada con hacerlas:

1.- este codigo

 result = conexion.Find("nombre_tabla", "campo2 < &1 AND campo2 > &2", variable1, variable2)

lo que dice es que va a buscar en la tabla "X" en el campo2 el valor menor cercano de la variable1 y el mayor cercano de la variable2 ?


No. Esa sentencia devuelve los registros de la tabla "nombre_tabla" donde el valor del "campo2" sea menor que la primera variable y mayor que la segunda. Es decir, un valor comprendido entre ambas variables (que podrás tomar por ejemplo de sendos controles textbox o spinbox).

Citar:

2.- En este caso tengo 2 variables, pero yo tengo solo una variable que es el valor a buscar. Como lo uso para un solo valor a buscar


Si sólo quieres buscar un valor=campo2 entonces sería así:

result = conexion.Find("nombre_tabla", "campo2 = &1", variable1)


Citar:

3.- el resulatdo es del tipo result quiere decir que debo manejarlo como array?. O sea debo usar index para obtener el valor? el resultado necesito usarlo en una formula, o sea necesito un Single. Correcto?


No sé exactamente qué tipo de dato almacenas en el supuesto "Campo2" de tu tabla. El objeto "result" en este caso devuelve una fila completa de la bd, es decir, el registro completo con todos sus campos. Para obtener todos los registros coincidentes con la consulta (suponiendo que el "campo2" no sea autoincrementable, o sea, único) debes recorrerlo de esta forma:

WHILE result.Available

    micampo1 = result["campo1"] ' sintaxis normal
    micampo2 = result!campo2    ' sintaxis alternativa
    print micampo1, micampo2
    result.MoveNext()

WEND


He usado las dos maneras de acceder a un campo mediante las dos sintaxis equivalentes. Eso va en los gustos de cada uno.
En el libro de gambas en pdf, capítulo 5, tienes ejemplos para representar los datos devueltos por la consulta en un columnview o un gridview, pero eso te lo dejo para que investigues tu mismo, ya que está muy bien explicado.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Conexion A BD SQLite3 
 
Ok Jesus, muchas gracias funciona a la perfeccion.-

PUBLIC SUB Button2_Click()

'declaro las variables como float
DIM variable1, micampo1, micampo2 AS Float

'textbox para introducir la variable
variable1 = TextBox10.Text


  resul = conex.Find("hydro", "displ < &1", variable1)

'movelast para encontrar el ultimo registro ( para obtener el mayor valor del resultado puesto que este sera el mas cercano)
   resul.MoveLast()
  
 'recorro los campos  
 micampo1 = resul["draft"]
 
 Message(micampo1)
 
 
 micampo2 = resul["displ"]
 
 Message(micampo2)
 
 
 
 
 
END
 



 
Juan_ed - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 1
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿Por Dónde Empiezo? SQLite3, Mozilla Fir... Ayortano Bases de Datos 4 Domingo, 08 Agosto 2010, 19:23 Ver último mensaje
Invitado
No hay nuevos mensajes Error Actualizando Campos En SQLite3 Ninfus Bases de Datos 3 Sabado, 18 Diciembre 2010, 20:32 Ver último mensaje
shordi
No hay nuevos mensajes Conexion A Dbase (.dbf) mano55 Bases de Datos 3 Sabado, 12 Febrero 2011, 21:26 Ver último mensaje
codificador
No hay nuevos mensajes Necesito Convertir Archivo, CSV A Una Tabl... gambafeliz Bases de Datos 44 Lunes, 26 Agosto 2019, 21:31 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 2 de 2
Ir a la página Anterior  1, 2

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario