Difference between revisions of "Lazarus DB Faq/es"

From Lazarus wiki
Jump to navigationJump to search
 
(22 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
[[Category:Castellano]][[Category:Español]]{{Lazarus DB Faq}}
 
[[Category:Castellano]][[Category:Español]]{{Lazarus DB Faq}}
 +
=FAQ SOBRE BASES DE DATOS EN LAZARUS=
 +
(FAQ = Frequently Asked Questions / Preguntas realizadas frecuentemente).
  
 
==Descripción general==
 
==Descripción general==
  
 
   Este FAQ se dirige a la programación Lazarus con bases de datos.
 
   Este FAQ se dirige a la programación Lazarus con bases de datos.
 +
 +
Como complemento a la referencia principal sobre [[Databases/es|bases de datos en Lazarus]].
  
 
=== Dónde encontrar más FAQ? ===
 
=== Dónde encontrar más FAQ? ===
  
   Buscar en el sitio oficial www.lazarus.freepascal.org. Esta no es más que otro FAQ. [[Lazarus Faq|Aquí]] puedes encontrar una página que empezó siendo una copia de la FAQ de www.lazarus.freepascal.org .
+
   Buscar en el sitio oficial www.lazarus.freepascal.org. Este no es más que otro FAQ. [[Lazarus Faq|Aquí]] puedes encontrar una página que empezó siendo una copia de la FAQ, más completa aunque esté en inglés o bien algún punto concreto de interés en español [[Lazarus Faq/es|Aquí]].
  
 
=== ¿Dónde encontrar componentes para Bases de Datos? ===
 
=== ¿Dónde encontrar componentes para Bases de Datos? ===
  
   Ahora los componentes SQLdb forman parte del paquete Lazarus, sólo es necesario instalarlo. Si miras en [$LazarusDir]/components verás el directorio SQLdb. Instala el paquete (sqldblaz.lpk) y podrás conectar a servidores MySQL, Interbase / Firebird and Postgres.  
+
   Ahora los componentes SQLdb forman parte del paquete FPC y Lazarus, y por tanto están instalados por defecto en todas las versiones más o menos recientes. Si miras en [$LazarusDir]/components verás el directorio SQLdb. Instala el paquete manualmente si lo necesitas (sqldblaz.lpk) y podrás conectar a servidores MySQL, Interbase / Firebird, Postgres, MS SQL y Sybase ASE (si tienes FPC 2.6.1+), Oracle servers. Aquí tienes una descripción para [[Install Packages/es|cómo instalar paquetes]] en caso necesario.
Mira [[Install Packages/es|aquí]] para ayuda sobre cómo instalar paquetes.
 
  
 
=== ¿Existen otros componentes? ===
 
=== ¿Existen otros componentes? ===
  
   Sí. Los [http://zeoslib.sourceforge.net/index.php componentes ZEOS] ha sido convertidos para se utilizados en Lazarus.
+
* Ver [[Lazarus_Database_Tutorial/es]] para un listado de bases de datos que funcionan con cada componente, también te puede ser de utilidad [[Databases/es| Bases de datos]]
  
   Hay que descargar el ''ZEOSDBO_Rework'' de [http://sourceforge.net/cvs/?group_id=35994 ZEOS cvs].
+
   Sí. Los [http://zeoslib.sourceforge.net/index.php componentes de ZEOS (ZeosLib] han sido convertidos para ser compilados/instalados/utilizados en Lazarus.
 +
   A fecha de enero de 2013 ya se cuenta con la versión de Lazarus 1.0.4 y ZeosLib 7.0.3.
  
   Mira también el tutorial de [[Zeos_tutorial|Zeos]].
+
Desde la versión 1.8.4 de Lazarus, se puede instalar desde OPM (menú "Paquete"-->Administrador de paquetes en línea).
 +
 
 +
   Mira también el tutorial de [[Zeos_tutorial/es|Zeos]].
  
 
   [http://pdo.sourceforge.net Pascal Data Objects] trabaja también con  Delphi y FPC 2.0 (para MySQL y Firebird)
 
   [http://pdo.sourceforge.net Pascal Data Objects] trabaja también con  Delphi y FPC 2.0 (para MySQL y Firebird)
Line 27: Line 33:
  
 
=== Cómo conectar desde Linux a un Servidor en Windows ===
 
=== Cómo conectar desde Linux a un Servidor en Windows ===
Introducir la ruta correcta a una Base de datos en un servidor Windows desde un cliente Linux no es algo evidente.  
+
   Introducir la ruta correcta a una Base de datos en un servidor Windows desde un cliente Linux no es algo evidente.  
  
Supongamos que se ha instalado Firebird en F:\Archivos de programa\firebird\. La Base de datos d ejemplo ''employee.fdb'' estrá en el directorio F:\Archivos de programa\firebird\examples\. La dirección IP de la máquina es 192.168.2.100.
+
   Supongamos que se ha instalado Firebird en F:\Archivos de programa\firebird\. La Base de datos de ejemplo ''employee.fdb'' estará en el directorio F:\Archivos de programa\firebird\examples\. La dirección IP de la máquina es 192.168.2.100.
  
Escribiendo el siguinete nombre de BD (''databasename'') 
+
   Escribiendo esta cadena de conexión
192.168.2.100:F:\Archivos de programa\firebird\examples\employee.fdb
+
  192.168.2.100:F:\Archivos de programa\firebird\examples\employee.fdb
en la ''IBConnection'' se conectará a la BD solicitada.
+
   en la ''IBConnection'' se conectará a la BD solicitada.
  
Nota: ¡No hay que poner valor a la propiedad ''hostname''!
+
   '''Nota''': ¡No hay que poner valor a la propiedad ''hostname''!
  
 
== MySQL ==
 
== MySQL ==
  
=== Which version of mySQL is supported? ===
+
=== ¿Qué versiones de mySQL están soportadas? ===
 +
 
 +
   Actualmente los componentes SQLdb pueden trabajar con las versiones MySQL 4.0, 4.1, 5.0, 5.1 y 5.5. Comprueba que usas el componente adecuado de conexión para la versión de la librería cliente que tienes instalada. Si esta es de la versión MySQL 4.1 hay que utilizar el componente ''TMySQL41Connection'' incluso si el servidor es de la 4.0 o 5.0.
  
Currently MySQL 4.0, MySQL 4.1 and MySQL 5.0 are supported by de SQLdb components. Make sure you are using the correct connection component for your client library version. So if you have the client libraries installed for MySQL 4.1 then you have to use TMySQL41Connection component, even if the server is running version 4.0 or 5.0.
+
==== Objetos de Datos Pascal (''Data Objects'') ====
  
==== Pascal Data Objects ====
+
   Ahora existe una alternativa. Las funciones introducidas en MySQL 4.1 y 5.0, como ''prepared statements'' (sentencias preparadas), procedimientos almacenados y ligados, son soportadas por la API de base de datos llamada ''Pascal Data Objects'', que está inspirada en ''PHP Data Objects''. Todo el código y la documentación necesarias para utilizar esta nueva API se encuentran en:
There is now an alternative. The functions introduced with MySQL 4.1 and 5.0 like prepared statements, binding, and stored procedures are supported by database API called Pascal Data Objects, which is inspired by PHP Data Objects. All the code and documentation necessary to use this new API is available on sourceforge:
 
  
http://pdo.sourceforge.net
+
  http://pdo.sourceforge.net
  
Jan 30, 2007: PDO has added drivers for Firebird 1.5 and 2.0
+
2007/01/30: PDO ha añadido controladores para Firebird 1.5 Y 2.0.
  
 
== PostgreSQL ==
 
== PostgreSQL ==
  
You can connect to PostgreSQL db by TPQConnection component. This component uses the PostgreSQL's libpq connection library[http://www.postgresql.org/docs/8.0/interactive/libpq.html], so you can easily connect almost every PostgreSQL db, but the component doesn't support the following connection options:
+
   Se pueden utilizar Bases de datos PostgreSQL con el componente TPQConnection, que utliliza la librería de conexión de PostgreSQL's libpq [http://www.postgresql.org/docs/8.0/interactive/libpq.html]; con el puedes conectar fácilmente con casi todas las BD PostgreSQL, pero el componente no puede utilizar las siguientes opciones de conexión:
* Port
+
 
* ClientEncoding
+
* Port: por ejemplo suele utilizar 5432 pero parece que es mejor dejar en blanco esta propiedad.
Maybe there are other unsupported connection parameters.
+
* ClientEncoding [http://wiki.freepascal.org/postgres#ClientEncoding  Postgres en FPC Nota sobre esto];
 +
* Creo que si el hostname se deja en blanco asume por defecto localhost o 127.0.0.1.
 +
 
 +
Sería bueno que los desarrolladores de estos componentes para Lazarus actualizasen esta sección puesto que conocen en más detalle el código y sobre todo lo que soporta actualmente o bien si tienen intenciones de hacer cambios a medio/largo plazo.
 +
Por lo que parece la mayor parte consiste en llamadas a funciones de la librería pero desconozco los cambios de una a otra versión.
 +
 
 +
Además en la tabla [[Databases/es|Bases de datos]] se especifica que la última versión soportada es la 8, mientras que PostgreSQL dispone ya de la versión 9.x (al menos a fecha enero 2013). Es también muy importante utilizar las librerias cliente adecuadas, caso contrario puede dar problemas de conexión o de funcionamiento.
 +
 
 +
Las pruebas que he realizado han sido con las librerias cliente (libpq.dll 8.3.1.8075)y parece que funciona. adicionalmente puede requerir otras librerias del conjunto que tiene el programa cliente cuando se instala y no solo deben ser correctas y estar en el equipo donde se realiza el desarrollo del programa sino también cuando dicho programa se distribuye a otros equipos.
 +
 
 +
Caso de utilizar conexión segura necesitará por ejemplo la librería que habilita SSL (ssleay32.dll - The OpenSSL Project, http://www.openssl.org/) o [libeay32.dll OpenSSL Shared Library The OpenSSL Project, http://www.openssl.org/)
 +
 
 +
   Es posible que existan otros parámetros de conexión no soportados.
 +
 
 +
Adicionalmente puedes ver:
 +
 
 +
En la wiki de freepascal: [http://wiki.freepascal.org/postgres Postgres en FPC];

Latest revision as of 06:00, 22 October 2019

Deutsch (de) English (en) español (es) français (fr) italiano (it) 日本語 (ja) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN)

FAQ SOBRE BASES DE DATOS EN LAZARUS

(FAQ = Frequently Asked Questions / Preguntas realizadas frecuentemente).

Descripción general

   Este FAQ se dirige a la programación Lazarus con bases de datos.

Como complemento a la referencia principal sobre bases de datos en Lazarus.

Dónde encontrar más FAQ?

   Buscar en el sitio oficial www.lazarus.freepascal.org. Este no es más que otro FAQ. Aquí puedes encontrar una página que empezó siendo una copia de la FAQ, más completa aunque esté en inglés o bien algún punto concreto de interés en español Aquí.

¿Dónde encontrar componentes para Bases de Datos?

   Ahora los componentes SQLdb forman parte del paquete FPC y Lazarus, y por tanto están instalados por defecto en todas las versiones más o menos recientes. Si miras en [$LazarusDir]/components verás el directorio SQLdb. Instala el paquete manualmente si lo necesitas (sqldblaz.lpk) y podrás conectar a servidores MySQL, Interbase / Firebird, Postgres, MS SQL y Sybase ASE (si tienes FPC 2.6.1+), Oracle servers. Aquí tienes una descripción para cómo instalar paquetes en caso necesario.

¿Existen otros componentes?

   Sí. Los componentes de ZEOS (ZeosLib han sido convertidos para ser compilados/instalados/utilizados en Lazarus.    A fecha de enero de 2013 ya se cuenta con la versión de Lazarus 1.0.4 y ZeosLib 7.0.3.

Desde la versión 1.8.4 de Lazarus, se puede instalar desde OPM (menú "Paquete"-->Administrador de paquetes en línea).

   Mira también el tutorial de Zeos.

   Pascal Data Objects trabaja también con Delphi y FPC 2.0 (para MySQL y Firebird)

InterBase / Firebird

Cómo conectar desde Linux a un Servidor en Windows

   Introducir la ruta correcta a una Base de datos en un servidor Windows desde un cliente Linux no es algo evidente.

   Supongamos que se ha instalado Firebird en F:\Archivos de programa\firebird\. La Base de datos de ejemplo employee.fdb estará en el directorio F:\Archivos de programa\firebird\examples\. La dirección IP de la máquina es 192.168.2.100.

   Escribiendo esta cadena de conexión

 192.168.2.100:F:\Archivos de programa\firebird\examples\employee.fdb

   en la IBConnection se conectará a la BD solicitada.

   Nota: ¡No hay que poner valor a la propiedad hostname!

MySQL

¿Qué versiones de mySQL están soportadas?

   Actualmente los componentes SQLdb pueden trabajar con las versiones MySQL 4.0, 4.1, 5.0, 5.1 y 5.5. Comprueba que usas el componente adecuado de conexión para la versión de la librería cliente que tienes instalada. Si esta es de la versión MySQL 4.1 hay que utilizar el componente TMySQL41Connection incluso si el servidor es de la 4.0 o 5.0.

Objetos de Datos Pascal (Data Objects)

   Ahora existe una alternativa. Las funciones introducidas en MySQL 4.1 y 5.0, como prepared statements (sentencias preparadas), procedimientos almacenados y ligados, son soportadas por la API de base de datos llamada Pascal Data Objects, que está inspirada en PHP Data Objects. Todo el código y la documentación necesarias para utilizar esta nueva API se encuentran en:

 http://pdo.sourceforge.net

2007/01/30: PDO ha añadido controladores para Firebird 1.5 Y 2.0.

PostgreSQL

   Se pueden utilizar Bases de datos PostgreSQL con el componente TPQConnection, que utliliza la librería de conexión de PostgreSQL's libpq [1]; con el puedes conectar fácilmente con casi todas las BD PostgreSQL, pero el componente no puede utilizar las siguientes opciones de conexión:

  • Port: por ejemplo suele utilizar 5432 pero parece que es mejor dejar en blanco esta propiedad.
  • ClientEncoding Postgres en FPC Nota sobre esto;
  • Creo que si el hostname se deja en blanco asume por defecto localhost o 127.0.0.1.

Sería bueno que los desarrolladores de estos componentes para Lazarus actualizasen esta sección puesto que conocen en más detalle el código y sobre todo lo que soporta actualmente o bien si tienen intenciones de hacer cambios a medio/largo plazo. Por lo que parece la mayor parte consiste en llamadas a funciones de la librería pero desconozco los cambios de una a otra versión.

Además en la tabla Bases de datos se especifica que la última versión soportada es la 8, mientras que PostgreSQL dispone ya de la versión 9.x (al menos a fecha enero 2013). Es también muy importante utilizar las librerias cliente adecuadas, caso contrario puede dar problemas de conexión o de funcionamiento.

Las pruebas que he realizado han sido con las librerias cliente (libpq.dll 8.3.1.8075)y parece que funciona. adicionalmente puede requerir otras librerias del conjunto que tiene el programa cliente cuando se instala y no solo deben ser correctas y estar en el equipo donde se realiza el desarrollo del programa sino también cuando dicho programa se distribuye a otros equipos.

Caso de utilizar conexión segura necesitará por ejemplo la librería que habilita SSL (ssleay32.dll - The OpenSSL Project, http://www.openssl.org/) o [libeay32.dll OpenSSL Shared Library The OpenSSL Project, http://www.openssl.org/)

   Es posible que existan otros parámetros de conexión no soportados.

Adicionalmente puedes ver:

En la wiki de freepascal: Postgres en FPC;