Mostrando entradas con la etiqueta Firebird. Mostrar todas las entradas
Mostrando entradas con la etiqueta Firebird. Mostrar todas las entradas

martes, 1 de septiembre de 2015

Conectarse a una base de datos remota de firebird con isql

Realmente es muy simple pero necesito dejar la nota por que de manera recurrente lo he necesitado:

$ isql
SQL> CONNECT "[IP_SERVER]/[PUERTO]:[DATABASE_PATH]" user 'USER' password 'PASS';

Ejemplo:


CONNECT "10.10.1.2/3050:C:\bds\mibase.gdb" user 'SYSDBA' password '1234';


Espero te sea de utilidad !



Referencias:
http://wiki.metawerx.net/wiki/HowToSetUpARemoteFireBirdConnection

viernes, 31 de mayo de 2013

Firebird isql terminal

Como ven me he hecho muy aficionado a la terminal, esta vez le toca el turno a una base de datos que utilizó mucho en mi trabajo Firebird.

Para hacer una conexión se debe utilizar:

$ isql
SQL> connect "192.168.1.2:c:\bases\mibase.gdb" user "miUsuario" password "laClave";
Database:  "192.168.1.2:c:\bases\mibase.gdb", User: miUsuario

Con la instrucción anterior se hace la conexión al servidor remoto 192.168.1.2 utilizando miUsuario y laClave. Hasta aqui todo facil.

Para ver un listado de las tablas podemos utilizar el siguiente comando:

SQL> show tables;

Por otro lado si deseamos ver los campos de una tabla utilizamos:

SQL> show table miTabla;

Para salir de isql sin realizar un commit de las transacciones se debe utilizar:

SQL> quit;

En caso contrario para salir y aplicar todos los cambios utilizar:

SQL> exit;

De aquí podemos utilizar las instrucciones de SQL que ya conocemos. En particular empece a revisar como conectarme por que estaba interesado en algo en particular exportar información.

Para exportar información utilizamos:

SQL> output "miarchivo.txt"
SQL> select * from miTabla;
SQL> output;

Con lo anterior en miarchivo.txt quedará almacenado el resultado de la consulta de miTabla.


Más información:
http://www.firebirdsql.org/pdfmanual/Firebird-isql.pdf


Espero te sea de utilidad !

martes, 15 de enero de 2013

Firebird agregar usuarios o crear usuarios con gsec

Por lo que estuve buscando no existe una instrucción SQL para crear un usuario utilizando Interbase o Firebird 1.5 todo debe ser utilizando el comando GSEC aquí veremos como emplearlo:

$ gsec -user sysdba -password tucontraseña
gsec>add usuarionuevo -pw passwordusuarionuevo -lname etiquetanombre
gsec>quit
$ _

Listo con eso el usuario queda creado ahora para darle permisos si podemos utilizar sql:
GRANT SELECT, UPDATE, INSERT, DELETE ON USUARIOS TO usuarionuevo

Con eso se le aplican los permisos sobre la tabla usuarios al usuario nuevo.



Espero te sea de utilidad !


Más información:
http://www.destructor.de/firebird/gsec.htm
http://www.firebird.com.mx/descargas/documentos/tema_5-administracion_y_seguridad.pdf
http://www.firebirdsql.org/refdocs/langrefupd25-security-grant-revoke.html





miércoles, 9 de enero de 2013

Conectar Python con Firebird

Hoy definitivamente ando bien Python ;) ... El siguiente documento es para conectar Python con Firebird, lo realizo en Mac OSX pero debiera ser similar para Windows:

Para poder realizar la conexión Python - Firebird, primero es importante tener instalado el Firebird en el equipo la versión que utilizaremos debe ser compatible con la versión 2 o superior ...
http://sourceforge.net/projects/firebird/?source=dlp

Una vez que se haya descargado debemos ejecutar la el pkg de instalación.

Posteriormente es probable que tengamos que editar el ~/.bash_profile con las siguientes líneas:
export FIREBIRD_HOME=/Library/Frameworks/Firebird.framework/Resources
export PATH=$PATH:$FIREBIRD_HOME/bin
Más información en:
http://www.firebirdsql.org/file/documentation/papers_presentations/html/paper-fb-macosx-install.html
Uso de la terminal:
http://www.firebirdsql.org/manual/es/qsg15-es-connecting.html#d0e1215


Una vez instalado el Firebird, existen varios controladores (Driver) para conectar python con firebird, pero este fue el que mejor me dio resultado ya que esta desarrollado usando solo python:

https://github.com/nakagami/pyfirebirdsql/archive/master.zip
Más información aquí: https://github.com/nakagami/pyfirebirdsql

Una vez descargado y descomprimido entramos al directorio y corremos el siguiente comando:
$ sudo python setup.py build

Si hubo errores, después del comando anterior revisa la conectividad y funcionamiento de firebird, en caso de que todo haya salido bien, entonces procedemos con el siguiente comando:
$ sudo python setup.py install

Podemos probar que haya quedado instalada la librería usando el shell de python e importando la librería firebirdsql.

El siguiente fragmento de código es para ejemplo de conectividad:
_________________________________

# Conectarse a la base de datos de firebird
import firebirdsql as fb

# Conectar con la base de datos
con = fb.connect(dsn='127.0.0.1:c:\\base.gdb',user='miusuario', password='miclave')

# Se crea el cursor de la conexión
cur = con.cursor()

# Ejecuta el comando SQL
cur.execute(" select clave, nombre from municipios ")

# Imprime los municipios encontrados en la base de datos ...
for row in cur:
print str(row[0])," > ",str(row[1])

_________________________________

Sitios de Referencia:
http://maxirobaina.tumblr.com/post/27867131429/firebird-sql-estado-del-driver-para-python
http://nakagami.github.com/pyfirebirdsql/installation.html
[ Tutorial de la librería ] http://nakagami.github.com/pyfirebirdsql/tutorial.html
http://www.fpress.com/revista/Num0704/unart6.htm
http://stackoverflow.com/questions/11787012/how-to-install-mysqldb-on-mountain-lion
[ Tutorial del terminal ] http://www.firebirdsql.org/manual/es/qsg15-es-connecting.html#d0e1215



Espero te sea de utilidad !




martes, 2 de octubre de 2012

Firebird campos multivalorados o con multivalores (multivalue) combinado con case


El día de hoy me enfrente al detalle de obtener un reporte con multi-valores, esto es en una fila colocar los datos de una tabla y posteriormente en una sola celda aparezcan datos de otra tabla donde esta vinculada del tipo foreign key, dejo aqui la consulta para que sirva de referencia...


select
factura, fecha,

case motivoservicio
when 1 then 'Falla en Software'
when 2 then 'Garantía'
when 3 then 'Mantenimiento Preventivo'
end as servicio,

(select nombre from sucursales where CLAVE=r.clave) as sucursal,

(select list(case id_tipo
when 1 then 'Reinstalación'
when 2 then 'Virus'
when 3 then 'Configuración'
when 4 then 'Otro'
end,' / ')
from tipos_soporte a
where r.factura = a.factura group by a.factura) as soporte,

from registro_servicios r
where
cancelado = 0 and
fecha = '2012-10-02'


Esto producirá un resultado como el siguiente:
facturafechaserviciosucursalsoporte
102912012-10-02Falla en SoftwareVallartaReinstalación / Virus
102922012-10-02Falla en SoftwareVallartaVirus / Configuración
103012012-10-02GarantíaCihuatlánOtro
103062012-10-02GarantíaGuadalajaraVirus



Es importante hacer mención que esta consulta será compatible con firebird versión 2.1 en delante, por el uso de LIST().

Espero les sea de utilidad.


Referencias:
http://www.janus-software.com/fbmanual/manual.php?book=psql&topic=56
http://www.developeando.com/2009/02/firebird-21-list-function.html
http://www.firebirdsql.org/refdocs/langrefupd20-select.html#langrefupd20-aggregates
http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/migration-mssql-syntax.html
http://www.firebirdsql.org/manual/nullguide-aggrfunc.html

lunes, 9 de julio de 2012

Concatenar Cadenas en Firebird e Interbase

Hace unos días estuve buscando información de como concatenar en Firebird, la forma de hacerlo es utilizando los caracteres ||,  les dejo aquí un ejemplo:


select  nombre||'  '||apellidos, domicilio
from personas

Con lo anterior el sistema debe concatenar el nombre con un espacio en blanco y luego los apellidos, en otra columna aparecerá el domicilio.

Espero sea de utilidad !