Creamos el procedimiento almacenado desde el cliente mysql de nuestra preferencia
DELIMITER $
DROP PROCEDURE IF EXISTS born_in_year;
CREATE PROCEDURE born_in_year( year_of_birth INT )
BEGIN
SELECT first_name, last_name, birth, death from president where year( birth ) = year_of_birth;
END $
DELIMITER ;
para ejecutarlo simplemento lo hacenmos pro medio de un query
cText = "CALL born_in_year( 1908 )"
oQry := oServer:Query( cText )
el siguiente llamdo es importante para "terminar" el proceso
oServer:NextResult()
veammos el ejemplo completo
#include "tdolphin.ch"
#define CRLF Chr( 13 ) + Chr( 10 )
PROCEDURE Main()
LOCAL cText := ""
LOCAL oQry, oServer
SET CENTURY ON
SET DATE FORMAT "dd/mm/yyyy"
D_SetCaseSensitive( .T. )
IF ( oServer := ConnectTo() ) == NIL
RETURN NIL
ENDIF
cls
cText = "CALL born_in_year( 1908 )"
oQry := oServer:Query( cText )
DolphinBrw( oQry, "Test" )
oServer:NextResult()
oQry:End()
cText = "CALL born_in_year( 1913 )"
oQry := oServer:Query( cText )
DolphinBrw( oQry, "Test" )
oServer:NextResult()
oQry:End()
cText = "call count_born_in_year( 1913, @count )"
oQry := oServer:Execute( cText )
oServer:NextResult()
oQry := oServer:Query( "select @count as count" )
? "count is:"
?? oQry:count
oQry:End()
RETURN
esto verifica que no exista otro query con resultado (por motivos de posibles multiples sentencias en los precedimeintos) y cierra el ciclo de existir otro query con resultado deberiamos hacer lo siguiente
oQry:LoadNextQuery( )
asi cargamnos automaticamente el proximo resultado de un query para multi sentencias
ejemplo de multiples sentencias
#include "tdolphin.ch"
FUNCTION Main()
LOCAL oServer, oQry
D_SetCaseSensitive( .T. )
Set_MyLang( "esp" )
IF ( oServer := ConnectTo() ) == NIL
RETURN NIL
ENDIF
oQry = oServer:Query( "select * from president; select * from student" )
DolphinBrw( oQry, "President" )
oQry:LoadNextQuery( )
DolphinBrw( oQry, "Student" )
oQry = NIL
oServer:End()
RETURN NIL
#include "connto.prg"
#include "brw.prg"
lunes, 2 de mayo de 2011
Integracion
Dolphin se ha integrado al proyecto GTXBase, Herraminetas Libres para Gente Libre
Con la iniciativa de Rafa Carmona (thefull), Riztan Gutierrez y Daniel Garcia-Gil (yo), el fuerte del proyecto es T-GTK, excelente GUI multiplataforma basado en GTK
podran ver el codigo fuente enteramente en http://www.gtxbase.org/devel/
Dolphin tiene su espacio en el foro donde podran hacer sus preguntas y sugerencias
//
Dolphin was integrated to GTXBase project, FREE Tools to FREE Peoples.
With the initial idea from Rafa Carmona (thefull), Riztan Gutierrez and Daniel Garcia-Gil (me), the "hard" point in the project is T-GTK, excelent Multiplataform GUI based in GTK libraries
all source code is available in http://www.gtxbase.org/devel/
Dolphin has your space in http://www.gtxbase.org/forums/viewforum.php?f=7
miércoles, 16 de marzo de 2011
Aprendamos MYSQL
No les hablare de historia o antecedentes sobre la evolucion de MySQL, ire directo al grano al asunto que nos importa... Aprender MySQL
En el mundo de bases de datos, MySQL se califica como un sistema de gestión de bases de datos relacional (SGBDR), adentrando un poco más en estas siglas tenemos que MySQL es el sofware que nos perimte utilizar los datos de la Base, insertado, modificando, recuperando y eliminando, haciendolo de forma relacional, es decir, encontrando coincidencias de información almacenada en una tabla en otras, por medio de elementos comunes en cada una de ellas. La potencia de lo relacional, radica en su capacidad de extraer datos de estas tablas de forma apropiada y unir la información de las tablas relacionadas para producir respuestas a preguntas que no podrían responderse mediante una tabla individual.
Para comunicarnos con MySQL utilizamos un lenguaje llamado SQL ( lenguaje estructurado de consulta, en ingles Structured Query Language ), el cual intentaré explicar sus sentencias en futuros post en el blog.
Al usar MySQL estamos usando en realidad dos programas, qye que MySQL opera utilizando un arquitectura de tipo cliente/servidor:
Para continuar deberemos tener instalado:
En el mundo de bases de datos, MySQL se califica como un sistema de gestión de bases de datos relacional (SGBDR), adentrando un poco más en estas siglas tenemos que MySQL es el sofware que nos perimte utilizar los datos de la Base, insertado, modificando, recuperando y eliminando, haciendolo de forma relacional, es decir, encontrando coincidencias de información almacenada en una tabla en otras, por medio de elementos comunes en cada una de ellas. La potencia de lo relacional, radica en su capacidad de extraer datos de estas tablas de forma apropiada y unir la información de las tablas relacionadas para producir respuestas a preguntas que no podrían responderse mediante una tabla individual.
Para comunicarnos con MySQL utilizamos un lenguaje llamado SQL ( lenguaje estructurado de consulta, en ingles Structured Query Language ), el cual intentaré explicar sus sentencias en futuros post en el blog.
Al usar MySQL estamos usando en realidad dos programas, qye que MySQL opera utilizando un arquitectura de tipo cliente/servidor:
- El programa servidor, se ejecuta en la computadora donse se almacenan las bases de datos, está a la espera de las peticiones de los clientes a través ed la red para acceder al contenido de las tablas.
- El programa cliente, se conecta con el servidor de la base de datos y genera consultas (Query) para generar la acción requerida
Para continuar deberemos tener instalado:
- Sofware de MySQL : http://www.mysql.com/downloads/mysql/
- Una cuenta MySQL que le permitra conectar con el servidor
- Una Base de datos para trabajar... http://www.sitasoft.net/dolphin/files/sampdb.zip
domingo, 6 de febrero de 2011
Seguridad en MySql / Security in MySql
Existen 2 tipos de riesgos que debemos tener en consideracion en Mysql
1- Riesgos procedentes de otros usuarios con cuenta de acceso al host del servidor y llamaremos seguridad interna
2- Riesgos procedentes de clientes que conectan al servidor a travez de la red y llamaremos seguridad externa.
1- Riesgos procedentes de otros usuarios con cuenta de acceso al host del servidor y llamaremos seguridad interna
2- Riesgos procedentes de clientes que conectan al servidor a travez de la red y llamaremos seguridad externa.
SEGURIDAD INTERNA:
Independientemente del sistema operativo en que este instalado el servidor donde montemos el host MySql, los archivos copiados despues de la instalacion deberan estar protegidos.
No debemos permitir acceso a las carpetas locales creadas por la instalacion de MySql y algunas de estas deberan estar bien protegidas, por ejemplo los archivos binarios y mas aun los archivos de registro, ya que contienen el texto de las sentencias que envian los clientes al servidor, esto tiene relacion con cualquiera que tenga acceso a los archivos de registro podra monitorizar los cambios en el contenido de la base de datos. Un aspecto mas especifico relacionado con los archivos de registro es las sentencias tales como GRANT y SET PASSWORD, tambien quedan registradas
Independientemente del sistema operativo en que este instalado el servidor donde montemos el host MySql, los archivos copiados despues de la instalacion deberan estar protegidos.
No debemos permitir acceso a las carpetas locales creadas por la instalacion de MySql y algunas de estas deberan estar bien protegidas, por ejemplo los archivos binarios y mas aun los archivos de registro, ya que contienen el texto de las sentencias que envian los clientes al servidor, esto tiene relacion con cualquiera que tenga acceso a los archivos de registro podra monitorizar los cambios en el contenido de la base de datos. Un aspecto mas especifico relacionado con los archivos de registro es las sentencias tales como GRANT y SET PASSWORD, tambien quedan registradas
SEGURIDAD EXTERNA:
El sistema de seguridad de MySql es bastante flexible. Nos permite configurar los privilegios de acceso de los usuarios de varias formas diferentes. Normalmente lo haremos utilizando las sentencias GRANT y REVOKE, las cuales modifican las tablas de autorizaciones que controlan el acceso de los clientes.
Las sentencias GRANT y REVOKE proporcionan un metodo adecuado para configurar cuentas de usuario en MySql y asociarles privilegios, pero son solo un ainterfaz. Todas las acciones reales tienen lugar en las tablas de autorizaciones de Mysql.
Para mas detalle sobre las tablas de autorizacion pueden consultar http://dev.mysql.com/doc/refman/5.0/en/grant-table-structure.html
El sistema de seguridad de MySql es bastante flexible. Nos permite configurar los privilegios de acceso de los usuarios de varias formas diferentes. Normalmente lo haremos utilizando las sentencias GRANT y REVOKE, las cuales modifican las tablas de autorizaciones que controlan el acceso de los clientes.
Las sentencias GRANT y REVOKE proporcionan un metodo adecuado para configurar cuentas de usuario en MySql y asociarles privilegios, pero son solo un ainterfaz. Todas las acciones reales tienen lugar en las tablas de autorizaciones de Mysql.
Para mas detalle sobre las tablas de autorizacion pueden consultar http://dev.mysql.com/doc/refman/5.0/en/grant-table-structure.html
Suscribirse a:
Entradas (Atom)