La Clase Connection:
Esta clase representa una conexión a una base de datos.
¿como nos conectamos a la base de datos?
Se crea un objeto
del tipo Connection, asignandole las propiedades necesarias (tipo de
base de datos, lugar donde se encuentra, usuario, contraseña, etc,), y le llama al método Open para abrirla.
Si por ejemplo queremos conectarnos a una base de datos tipo MySQL, seria asi:
PUBLIC $Con AS NEW Connection 'definimos $Con como publica para poder ser usada en todos los módulos y formularios de la aplicación
PUBLIC SUB Conectar()
$Con=Null ' anulo por si hay conexiones ya abiertas
$Con.Type = "MySQL" ' definimos el tipo
$Con.Host = "localhost" ' definimos el servidor
$Con.Login = "root" ' nombre de usuario con el que conectamos
$Con.Port = "3306" ' puerto al que conectamos
$Con.Name = "Sophia" ' nombre de la base de datos a la que vamos a conectarnos
$Con.Password = "root123" ' contrasela del usuario
TRY $Con.Open() ' abrimos la conexión, y vamos a comprobar si se produce un error...
IF ERROR THEN
Message.error("Error al intentar conectarse a la base de datos")
PRINT ERROR.TEXT
PRINT ERROR.CODE
PRINT ERROR.WHERE
ENDIF
END
Si queremos conectarnos a una base de datos tipo SQLite3, sería asi:
PUBLIC $Con AS NEW Connection 'definimos $Con como publica para poder ser usada en todos los módulos y formularios de la aplicación
PUBLIC SUB Conectar()
$Con=Null ' anulo por si hay conexiones ya abiertas
$Con.Type = "sqlite3" ' definimos el tipo
$Con.Host = user.home & "/directorio" ' definimos directorio donde se encuentra la base de datos
$Con.Name = "test" ' nombre de la base de datos a la que vamos a conectarnos
TRY $Con.Open() ' abrimos la conexión
IF ERROR THEN
Message.error("Error al intentar conectarse a la base de datos")
PRINT ERROR.TEXT
PRINT ERROR.CODE
PRINT ERROR.WHERE
ENDIF
END
Nota Importante:
Si hemos creado la conexión desde el Gestor de Conexiones de Gambas3, es mucho más facil, la podemos usar directamente asi:
PUBLIC $Con AS NEW Connection 'definimos $Con como publica para poder ser usada en todos los módulos y formularios de la aplicación
PUBLIC SUB Conectar()
$Con= Connections["Connection1"]
$Con.Open() 'tenemos que a abrir la conexión
IF $Con=NULL THEN
Message.error("Error al intentar conectarse a la base de datos")
ENDIF
END
¿como nos desconectamos a la base de datos?
Para cerrar se usa el método Close.
Si por ejemplo queremos conectarnos a una base de datos tipo MySQL, seria asi:
PUBLIC $Con AS NEW Connection 'definimos $Con como publica para poder ser usada en todos los módulos y formularios de la aplicación
PUBLIC SUB Conectar()
$Con=Null ' anulo por si hay conexiones ya abiertas
$Con.Type = "MySQL" ' definimos el tipo
$Con.Host = "localhost" ' definimos el servidor
$Con.Login = "root" ' nombre de usuario con el que conectamos
$Con.Port = "3306" ' puerto al que conectamos
$Con.Name = "Sophia" ' nombre de la base de datos a la que vamos a conectarnos
$Con.Password = "root123" ' contrasela del usuario
TRY $Con.Open() ' abrimos la conexión, y vamos a comprobar si se produce un error...
IF ERROR THEN
Message.error("Error al intentar conectarse a la base de datos")
PRINT ERROR.TEXT
PRINT ERROR.CODE
PRINT ERROR.WHERE
ENDIF
END
Si queremos conectarnos a una base de datos tipo SQLite3, sería asi:
PUBLIC $Con AS NEW Connection 'definimos $Con como publica para poder ser usada en todos los módulos y formularios de la aplicación
PUBLIC SUB Conectar()
$Con=Null ' anulo por si hay conexiones ya abiertas
$Con.Type = "sqlite3" ' definimos el tipo
$Con.Host = user.home & "/directorio" ' definimos directorio donde se encuentra la base de datos
$Con.Name = "test" ' nombre de la base de datos a la que vamos a conectarnos
TRY $Con.Open() ' abrimos la conexión
IF ERROR THEN
Message.error("Error al intentar conectarse a la base de datos")
PRINT ERROR.TEXT
PRINT ERROR.CODE
PRINT ERROR.WHERE
ENDIF
END
Nota Importante:
Si hemos creado la conexión desde el Gestor de Conexiones de Gambas3, es mucho más facil, la podemos usar directamente asi:
PUBLIC $Con AS NEW Connection 'definimos $Con como publica para poder ser usada en todos los módulos y formularios de la aplicación
PUBLIC SUB Conectar()
$Con= Connections["Connection1"]
$Con.Open() 'tenemos que a abrir la conexión
IF $Con=NULL THEN
Message.error("Error al intentar conectarse a la base de datos")
ENDIF
END
Conectando a una base de datos, usando las conexiones creadas desde el Gestor de bases de datos de Gambas3 |
¿como nos desconectamos a la base de datos?
Para cerrar se usa el método Close.
$Con.Close()
¿como hacemos para confirmamos una operación con los datos?
$Con.Commit()
Al final de este articulo tenéis un ejemplo donde se insertar, edita, borra y busqueda de datos con las funciones de connection: .create, .edit, .delete, y .find
¿como hacer una consulta de modo genérica con sentencias SQL?
Se usa el método
.Exec(sentencia_Sql)
Ejecuta
una petición SQL dada
y devuelve
un
objeto
Result
de sólo lectura que contiene el resultado de la solicitud de
sentencia
devolución.
PUBLIC SUB Consulta()
DIM $Query AS String
$Query = "SELECT * FROM Friends WHERE Name = '" & TBXName.Text & "'"
$Con.Exec($Query)
END
Para más información:
http://gambaswiki.org/wiki/comp/gb.db/connection
La clase Result:
¿como operamos con los resultados
de una consulta?
Usamos un objeto
de la clase Result, llamando a los distintos campos para asignarlos a
las variables.
Para llamar a los
campos lo hacemos de esta forma:
Dim $result as
result
....
$result!NombreCampo
También se puede usar:
$result["NombredeCampo"]
La clase result, tiene varios métodos para desplazarnos en las consultas: movefist, movelast, movePrevius, moveNext, moveTo
Para más infomacion: http://gambaswiki.org/wiki/comp/gb.db/result?l=es
A continuación un ejemplo usando result para desplazarnos por los registros:
En este ejemplo, cagamos una base de datos con una tabla de 2 campos (nombre y edad), y mostramos los botones para que el usuario pueda desplazarse con ellos por los registros:
Código fuente:
-
-
Enlace de descarga: enlace alojado en box.com
Ejemplo de Como abrir una conexion a Mysql y usarla:
Un ejemplo completo de insertar, editar, borrar y buscar:
En este este programa vamos a poder insertar, editar, borrar y realizar busquedas en una base de datos llamada "DatosEjemplos", que tiene una tabla llamada "Personas".
Los campos de esta tabla son: nombre, apellidos, edad y la fecha de nacimiento
La estructura del proyecto es la siguiente:
Código fuente:
Modulo ModComun:
-
-
Módulo fuente:
FormMostrarResultados
-
-
Módulo fuente:
Fmain:
-
-
Ejemplo de la aplicación funcionando:
Varias cosas a comentar:
1) El propio programa tiene la base de datos internamente, que la copia al directorio User.home &/ ".ejemploBD" si no la encuentra en el disco duro.
2) Si pulsáis el botón derecho del ratón en alguna fila del ColumView, tendréis acceso al menú popup :"Editar/Borrar/Filtrar/Quitar Filtro"
3) Se han usado los métodos de la clase connection para editar, insert, borrar y filtrar información. También se podía haber echo con sentencias SQL y usando el método .Exec()
4) El esquema de la tabla Personas:
El campo Id es una llave primaria integer, la cual se autoenumera cuando le damos valor Null.
5) Las fechas se guardan internamente en la base de datos en el formato mes/dia/año, por eso para mostrarlas en el columnview uso el formateo "dd/mm/yyyy".
Para mostrarla en el formulario Fmain (añade o edita registros), al usar un DateBox, automáticamente se formatea correctamente.
enlace de descarga: archivo alojado en Box.com
Documentación Oficial:
Referencia en gambaswiki:
No hay comentarios:
Publicar un comentario