INICIO   Otros temas


Tutorial de Lazarus - postgresql - (en construcción)

Autor: Fernando Rafael Filipuzzi

E-mail: fernando_6867@yahoo.com.ar


Este documento es una guía mínima (por ahora) para implementar Lazarus con PostgreSQL. Aún está en construcción.


1.0 Instalación

La instalación se realizó en Debian Lenny y se utilizó los repositorios de Debian Sid para la instalación de Lazarus.

    1.1 Instalación de PostgreSQL

    	usuario@host:~$ aptitude search postgres
    	...
    	p       postgresql                       - object-relational SQL database (supported 
    	p       postgresql-8.3                   - object-relational SQL database, version 8.
    	...
    	usuario@host:~$su
    	password:
    

    En password va la contraseña del root.

    	host:/home/usuario#aptitude install postgresql-8.3
    	host:/home/usuario#aptitude search pgadmin
    	p       pgadmin3                        - graphical administration tool for PostgreSQL            
    	p       pgadmin3-data                   - graphical administration tool for PostgreSQL - documenta
    	p       phppgadmin                      - web-based administration tool for PostgreSQL            
    	host:/home/usuario#aptitude install pgadmin3
    	host:/home/usuario#logout
    	usuario@host:~$
    

    1.2 Instalación de Lazarus

    	usuario@host:~$su
    	password:
    	host:/home/usuario#aptitude search Lazarus
    	...
    	p       lazarus                         - IDE for Free Pascal to create (graphical and console) applications
    	p       lazarus-doc                     - IDE to create (graphical and console) applications with Free
    	p       lazarus-ide                     - IDE to create (graphical and console) applications with Free
    	p       lazarus-src                     - IDE to create (graphical and console) applications with Free
    	...
    	host:/home/usuario#aptitude install lazarus lazarus-ide
    

    Sino instala el fpc:
    	host:/home/usuario#aptitude search fpc
    	p       fpc                             - Free Pascal Compiler - Meta Package
    	...
    	host:/home/usuario#aptitude install fpc
    	host:/home/usuario#logout
    	usuario@host:~$


    1.3 Configurar postgresql

     Configuración para acceder a la base de datos local.

    	usuario@host:~$su
    	password:
    	host:/home/usuario#nano /etc/postgresql/8.3/main/pg_hba.conf
    

    En este archivo agregar lo siguiente:

    	local	nombre_de_una_base_de_datos		nombre_de_algun_usuario			password
    	local	nombre_de_una_o_de_otra_base_de_datos	nombre_de_algun_o_de_otro_usuario	password
    

    Para que todos los usuarios tengan acceso se puede reemplazar a nombre_de_algun_usuario por all, de igual forma para las bases de datos. Ejemplo:

    	local		all		all		password
    


2.0 Postgresql


    2.1- Ingresar

    	usuario@host:~$ su
    	host:/home/usuario# su - postgres
    	postgresql@host:/home/usuario$
    

    2.2 Crear usuario

    	postgresql@host:/home/usuario$ psql
    	postgres=#CREATE USER nombre_de_usuario
    	postgres-#WITH PASSWORD 'unacontraseña'
    	postgres-#CREATEDB
    	postgres-#CREATEUSER
    	postgres-#;
    

    Con CREATEDB le da los privilegios a ese usuario de crear base de datos y con CREATEUSER le da privilegios de crear otros usuarios.

    Para salir del psql:

    	postgres-#\q;
    

    2.3 Crear la base de datos

    	postgresql@host:/home/fernando$ createdb nombre_de_la_base_de_dato_a_crear
    

    2.4 Crear una tabla

    	postgresql@laboratorio:/home/fernando$psql -U nombre_del_usuario nombre_de_la_base_de_dato_creada
    	Contraseña para usuario nombre_del_usuario:
    	Bienvenido a psql 8.3.7, la terminal interactiva de PostgreSQL.
    
    	Digite:  \copyright para ver los términos de distribución
    		\h para ayuda de órdenes SQL
    		\? para ayuda de ó rdenes psql
    		\g o punto y coma («;») para ejecutar la consulta
    		\q para salir
    	nombre_de_la_base_de_dato_creada=#
    

    Puede ocurrir el error dado en el punto 5.1


    2.5 Crear una tabla en baseDato

    	nombre_de_la_base_de_dato_creada=# CREATE TABLE tabla( 
    	nombre_de_la_base_de_dato_creada(#id serial, --Indice de la tabla 
    	nombre_de_la_base_de_dato_creada(#nombre varchar(50), --nombre del empleado 
    	nombre_de_la_base_de_dato_creada(#fecnac date -- fecha de nacimiento del empleado 
    	nombre_de_la_base_de_dato_creada(#);

    luego

    		nombre_del_usuario=# \dt 
    

    Listado de relaciones

    SchemaNombreTipoDueño
    publictablatablausuario

    (1 fila)


    Se ven las tablas creadas con sus propietarios. Si se ingreso con psql -U usuario baseDato entonces la tabla creada será del usuario.


    	nombre_de_la_base_de_dato_creada=# SELECT * from tabla;
    	 id | nombre | fecnac 
    	----+--------+--------
    	(0 filas)
    

    se observa que no fue ingresada ninguna fila a tabla.


    2.6 Insertarle valores

    	nombre_de_la_base_de_dato_creada=# insert into tabla(id,nombre,fecnac) values (nextval('tabla_id_seq'), 'marcelo', '11-01-50');
    	nombre_de_la_base_de_dato_creada=# INSERT INTO tabla (id,nombre,fecnac) values (nextval('tabla_id_seq'), 'luciana', '11-01-79');
    	nombre_de_la_base_de_dato_creada=# SELECT * from tabla;
    	 id |      nombre      |   fecnac   
    	----+------------------+------------
    	  1 | marcelo | 2050-01-11
    	  2 | luciana | 1979-01-11
    	(2 filas)
    



3.0 Lazarus

    Crear un proyecto nuevo, agregarle al formulario y configurar los siguientes siguientes componentes:


    SQLdb


    sunburst graphic  TPQCoonection:


    sunburst graphic TSQLQuery:


    sunburs graphic TSQLTransaction:


    Data Access


    sunburs graphic TDataSource:


    Data control


    sunburs graphic TDBGrid:



    Quedando así

    sunburs graphic 



    La configuración se puede hacer en el siguiente orden:

    sunburst graphic  1- TPQCoonection:

    	DataName := nombre_de_la_base_de_dato_creada
    	UserName := nombre_del_usuario_creado
    	Password := password_del_usuario_creado
    	Hostname := nada o localhost, en MySQL localhost
    

    sunburs graphic 2- TSQLTransaction:

    	Active := True
    	Database := PQConnection1


    sunburst graphic 3- TSQLQuery:

    	DataBase := PQconnection1
    	SQL := SELECT * FROM nombre_tabla_creada
    	SQLTransaction := SQLTransaction1
    	Active := True
    

    una vez inicializado SQLTransaction se puede ver en SQL/resultados los datos de la tabla consultada.

    sunburs graphic 4- TDataSource:

    	DataSet := SQLquery1
    

    sunburs graphic 5- TDBGrid:

    	DataSource := Datasource1
    



4.0 Errores al fijar los valores de las propiedades de los componentes.

    4.1- "PQ Connection1: Execution of query failed (PostgreSQL: ERROR: permiso denegado a la relación sof_clientes)"

    Luego de configurar todos los componentes, cargar un select en el query y hacerle active a este, genera el mensaje de error.

    La solución:

    	usuario@host:~$su
    	password:
    	host:/home/usuario#su - postgres
    	postgresql@host:/home/usuario$psql base_de_dato_creada
    	base_de_dato_creada-#GRANT CONNECT ON DATABASE base_de_dato_creada TO usuario_creado;
    	base_de_dato_creada-#\q
    	postgresql@host:logout
    	host:/home/usuario#:logout
    	usuario@host:~$
    

    4.2- "No puede cargar cliente PostgreSQL. Fue éste instalado?" - "Can not load PostgreSQL client. Is it installed? (libpq.so)"

    Luego de hacer activate al PQConnection.

    La solución, consiste en hacer un enlace simbólico:

    	usuario@host:~$su
    	password:
    	host:/home/usuario#ls /usr/lib/libpq*
    	libpq.so.5	libpq.so.5.1
    

    Entonces tomamos la libpq.so.5.1 para lo siguiente:

    	host:/home/usuario#ln -s /usr/lib/libpq.so.5.1 /usr/lib/libpq.so
    	host:/home/usuario#logout
    	usuario@host:~$
    



5.0 Errores en el psql

    5.1- "psql: FATAL: la autentificación Ident falló para el usuario ... "

    ver configuración de postgresql




Referencia:

    Aprendiendo SQL con PostgreSQL; La versión en pdf

    Inicialización de Postresql 8.3 en Debian Lenny; La versión en pdf

    Introducción a postgresql

    Manual del usuario de PostgreSQL


    Página oficial de Lazarus; La documentación

    Tutorial de lazarus con mysql



    Foros:

    Hispalazarus



    Otros:

    referencia

    editores online

    graficador online




INICIO   Otros temas