|
Página 2 de 2
|
Conexion A BD SQLite3 (Solucionado)
Autor |
Mensaje |
Juan_ed
Usuario
Registrado: Febrero 2010
Mensajes: 13
Edad: 51
|
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
|
#11 Miercoles, 10 Febrero 2010, 15:46 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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"
|
#12 Miercoles, 10 Febrero 2010, 16:37 |
|
|
Juan_ed
Usuario
Registrado: Febrero 2010
Mensajes: 13
Edad: 51
|
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
|
#13 Jueves, 11 Febrero 2010, 15:42 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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 ?
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:
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"
|
#14 Jueves, 11 Febrero 2010, 20:20 |
|
|
Juan_ed
Usuario
Registrado: Febrero 2010
Mensajes: 13
Edad: 51
|
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
|
#15 Sabado, 13 Febrero 2010, 16:11 |
|
|
|
Temas parecidos
Temas parecidos
Tema |
Autor |
Foro |
Respuestas |
último mensaje |
|
¿Por Dónde Empiezo? SQLite3, Mozilla Fir...
|
Ayortano |
Bases de Datos |
4 |
Domingo, 08 Agosto 2010, 18:23 Invitado |
|
Error Actualizando Campos En SQLite3
|
Ninfus |
Bases de Datos |
3 |
Sabado, 18 Diciembre 2010, 20:32 shordi |
|
Conexion A Dbase (.dbf)
|
mano55 |
Bases de Datos |
3 |
Sabado, 12 Febrero 2011, 21:26 codificador |
|
Necesito Convertir Archivo, CSV A Una Tabl...
|
gambafeliz |
Bases de Datos |
44 |
Lunes, 26 Agosto 2019, 20:31 gambafeliz |
|
Página 2 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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 Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|