Archive

Archive for the ‘BBDD’ Category

Pasar datos de CSV a MySQL

November 23rd, 2009 Güimi 1 comment

Si queremos pasar datos de una aplicación a otra, el formato más estándar es CSV.
Así por ejemplo para pasar datos de una hoja de cálculo (OpenOffice Calc, Ms-Excell…) a MySQL podemos guardar la tabla como csv y después importarla en MySQL con los siguientes comandos:

# Primero hay que crear la tabla en la BBDD
$ mysql -hSERVIDOR -uUSUARIO -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
[...]
mysql> use BASE_DE_DATOS;

Database changed
# Indicar si los datos del fichero CSV están separados por coma, encerrados en comillas dobles o simples...
mysql> load data infile 'FICHERO' into table TABLA fields terminated by ',' enclosed by '"';
Query OK, X rows affected, X warnings (0.02 sec)
Records: X  Deleted: X  Skipped: X  Warnings: X

mysql> quit;
Bye

 
Quizá interese este artículo indicando como pasar de Ms-Access a MySQL.
 

CSV, MySQL, importar exportar datos
Categories: BBDD

Cuadrar cierre y apertura de ejercicio en AbanQ

July 16th, 2009 Güimi No comments

AbanQ es un ERP publicado como Software Libre que funciona bastante bien para PyMES.
Sin embargo cuando se intenta hacer un movimiento automático de cierra y apertura de ejercicio, a veces da un desagradable mensaje que dice que la contabilidad no cuadra -siendo que está perfectamente cuadrada-.
Esto ocurre porque algunas de las cuentas no tienen un código de balance asociado.

Para averiguar qué cuentas no tienen código de balance asociado basta hacer la siguiente consulta (por ejemplo usando pgAdmin III):

SELECT DISTINCT c.codcuenta, cb.codcuenta, cs.saldo
	FROM co_cuentascb cb
	  RIGHT JOIN co_cuentas c ON cb.codcuenta = c.codcuenta
	  LEFT JOIN co_subcuentas cs ON c.idcuenta = cs.idcuenta
	WHERE cb.codcuenta IS NULL
	  AND cs.saldo <> 0

Consulta enviada por Alberto García al foro de AbanQ.
 
Una vez detectadas las cuentas sin código de balance asociado, hay que ir al Área Contable y Financiera (puede tener otro nombre similar) -> Principal. El botón “Códigos de balance 08″ nos abre el formulario con los diferentes códigos de balance. Eligiendo el más adecuado asociamos las cuentas a él.
Por ejemplo se puede ver que el programa asocia inicialmente el código de balance “PG-A-7-a” con el grupo de cuentas “62″, por lo que podremos asociar las cuentas 62x en ese mismo código de balance.

Una vez no queden cuentas sin código de balance asociado, el programa debe hacer correctamente el asiento de cierre y apertura (se recomienda tener ya creado el nuevo ejercicio para poder hacer esta apertura).

abanq, cierre y apertura, códigos de balance
Categories: BBDD, Software Libre

Pasar de Access a MySQL

July 2nd, 2009 Güimi No comments

Tengo unos compañeros que se empeñan en utilizar Ms-Access, que es de los pocos programas que no funcionan de manera alguna en GNU/Linux (solo queda el recurso de usar una máquina virtual, como VirtualBox).
Por ello cuando necesito trabajar con ella (o ellos necesitan hacer consultas rápidas y como no saben me lo piden a mi) utilizo un pequeño script para pasar las tablas de Ms-Access a MySQL.
Y dice así:

#!/bin/bash
#
# vuelca_mdb 0.1 - GPL
# (c) Guimi
# http://guimi.net
#
# Ult. mod: Guimi 2009-07
#

# DATOS DEL FICHERO MDB
mdb=xxx.mdb
TABLA1=XXX
TABLA2=YYY

# DATOS DE MYSQL
bbdd=xxx
usuario=xxx
clave=xxx

# FICHERO TEMPORAL
tmp="tmp.$$"

echo "Exportando desde mdb..."
mdb-schema $mdb -S > sql-creacion_mdb$$.sql
mdb-export $mdb $TABLA1 -S -I > sql-datos_mdb$$.sql
mdb-export $mdb $TABLA2 -S -I >> sql-datos_mdb$$.sql

echo "Modificando ficheros exportados..."
# Hay que añadir "IF EXISTS" al "DROP TABLE"
sed 's/DROP TABLE/DROP TABLE IF EXISTS/g' sql-creacion_mdb$$.sql > $tmp
# Hay que cambiar "Long Integer" por "Integer"
sed 's/Long Integer/Integer/g' $tmp > sql-creacion_mdb$$.sql

# Hay que añadir un punto y coma ";" al final de cada linea -que acaba en ")"-
sed -e s/.$/\)\;/g sql-datos_mdb$$.sql > $tmp
mv $tmp sql-datos_mdb$$.sql

echo "Cargando datos en MySQL..."
mysql -D $bbdd -u $usuario --password=$clave < sql-creacion_mdb$$.sql
mysql -D $bbdd -u $usuario --password=$clave < sql-datos_mdb$$.sql

echo "Borrando ficheros temporales..."
rm sql-creacion_mdb$$.sql
rm sql-datos_mdb$$.sql


A continuación otros comandos que pueden ser utiles (proceden del paquete mdbtools).

Mostrar la versión del fichero mdb:
$ mdb-ver xxx.mdb

Mostrar las tablas de un fichero mdb (-1 para mostrar una tabla por fila):
$ mdb-tables -1 xxx.mdb

Generar un fichero C con un Array con los datos de una tabla:
$ mdb-array xxx.mdb TABLA

Access, mdb, mysql, script, prompt, Ms-Access, mdbtools
Categories: BBDD, GNU/Linux, Prompt

Postgres en Debian GNU/Linux

December 1st, 2008 Güimi No comments

Instalamos postgres y un cliente gráfico:
# aptitude install postgresql pgadmin3

 
Configuramos el servidor para que acepte conexiones de red (opcional, recomendable):
# vi /etc/postgresql/7.4/main/postgresql.conf

#tcpip_socket = false
tcpip_socket = true

 
Para versiones de postgres a partir de la 8.0:
# vi postgresql.conf

listen_addresses='*'

 
Creamos un nuevo usuario y una nueva BB.DD. para trabajar con él (opcional, recomendable):
# su – postgres

$ id

uid=112(postgres) gid=116(postgres) grupos=115(ssl-cert),116(postgres)

$ psql -l

      Listado de base de datos
  Nombre   |  Dueño   | Codificación
-----------+----------+--------------
 template0 | postgres | UNICODE
 template1 | postgres | UNICODE
(2 filas)

Creamos el usuario:
$ createuser

Ingrese el nombre del usuario a agregar: mi_usuario
¿Debe permitírsele al usuario la creación de bases de datos? (s/n) s
¿Debe permitírsele al usuario la creación de otros usuario? (s/n) s

 
Creamos la BB.DD.:
$ createdb -O mi_usuario mi_bbdd

CREATE DATABASE

 
Conectamos a la BB.DD. y asignamos una clave al usuario:
$ psql -d mi_bbdd

Bienvenido a psql 7.4.19, el terminal interactivo de PostgreSQL.

Digite:  \copyright para ver los términos de distribución
         \h para obtener ayuda sobre comandos SQL
         \? para obtener ayuda sobre comandos internos
         \g o termine con punto y coma (;) para ejecutar consulta
         \q para salir
abanq=# alter user mi_usuario with password 'mi_clave';
ALTER USER
abanq=# \q

 

Postgres en Debian GNU/Linux, Configurar Postgres en Linux, Instalar Postgres en Debian

Categories: BBDD

Recuperar clave de root en MySQL

June 11th, 2007 Güimi No comments
  1. Cortar todo acceso al puerto 3306 (porque vamos a funcionar momentaneamente sin claves).
  2. Parar mysql /etc/init.d/mysql stop
  3. Lanzar mysql sin proteccion de permisos /usr/sbin/mysqld –skip-grant-tables
  4. Desde otra sesión, conectar con mysql como root mysql -u root -D mysql
  5. Modificar la clave de root: update user set password=password(’clave_secreta’) where user=’root’;
  6. Paramos mysql: /usr/sbin/mysqld stop

Ya está cambiada. Ahora solo hay que volver a dar permisos de acceso y reiniciar el servicio.

Recuperar clave de root en MySQL, root password mysql

Categories: BBDD
Para los artículos:
Creative Commons License 2003-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia "Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.

Puede ver una copia de esta licencia completa.

Para el código de programación:
General Public License GPL 2 - Copyright (c) 1998-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los desarrollos bajo los términos de la licencia "GNU General Public License, Versión 2" de Free Software Fundation.

Puede ver una copia de esta licencia completa.

Reconocimiento tautológico: Todas las marcas pertenecen a sus respectivos propietarios.