Sign in Join
Wiki copytemporary

SQLdb Package/es

English · Español · Français · 中文(中国) · 日本語

El paquete SQLdb contiene las Unidades (units) de FPC que permiten el acceso a un gran número de Bases de Datos SQL. En Lazarus encontraremos el paquete sqldblaz.lpk que una vez compilado e instalado nos permitirá el acceso a sus componentes en el LCL dentro de la pestaña "SQLdb".

Documentación

Ver Documentación sobre SQLDB

Componentes

El paquete SQLdb proporciona los siguientes componentes:

TSQLQuery

Este es un descendiente de TDataset y proporciona los datos (procedentes de la consulta SQL realizada) en forma de Tabla. También puede ser empleado para ejecutar consultas SQL (e.g. procedimientos almacenados, INSER INTO...) que no retornan datos. Ver Trabajando con TSQLQuery para más detalles.. Documentación: ver TSQLQuery

En el inspector de objetos podemos ver:

Active: (valor por defecto: False).

AutoCalcFields: (valor por defecto: True).

Database:

DataSource:

DeleteSQL: (TStringList).

FieldDefs: (valor por defecto: 0 items).

FileName:

Filter:

Filtered:

IndexDefs: (valor por defecto: 0 items).

IndexFieldNames:

InsertSQL: Es un listado de cadenas que especifican la query para realizar el INSERT (TstringList). Caso de no definirse uno nos puede lanzar una excepción similar a esta:

MaxIndexesCount: (valor por defecto: 2).

Name: (valor por defecto SQLQuery1).

Options: sqo = standar query option

PacketRecords: (valor por defecto: 10).

ParamCheck: (valor por defecto: True).

Params: (valor por defecto: 0 items).

ParseSQL: (valor por defecto: True).

ReadOnly: (valor por defecto: True).

RefreshSQL: (TStringList).

Secuence:

ApplyEvent:

FieldName.

IncrementBy: (valor por defecto: 1).

SecuenceName:

ServerFilter:

ServerFiltered: (valor por defecto: True).

ServerIndexDefs: (valor por defecto: 0 items).

SQL: (TStringList).

Tag: (valor por defecto: 0).

Transaction:

UniDerectional:

UpdateMode:

UpdateSQL:

UsePrimaryKeyAsKey: (valor por defecto: True).

TXXXConnection

Donde XXX es el tipo de Base de Datos a la cual nos vamos a conectar. Cada uno de estos componentes emplea una petición "standar" de los componentes SQLQuery y SQLTransaction, y los traduce a peticiones especificas de cada Base de Datos, permitiendo la abstracción sobre las características especificas de las mismas.

Estos objetos de conexión descienden del genérico TSQLConnection; se puede utilizar TSQLConnection para crear programas que utilicen bases de datos de forma que puedan conectar a múltiples bases de datos. (ver SQLdb Tutorial3).

Los componentes TXXXConnection que podremos emplear son:

TSQLTransaction

Documentación: ver documentación sobre TSQLTransaction

Encapsula las transacciones con el servidor de Bases de Datos. Un objeto TXXXConnection siempre necesita al menos otro del tipo TSQLTransaction asociado a el, de manera que las transacciones de las consultas sean gestionadas.

Las consultas/acciones en la base de datos necesitan encapsularse en:

Estableciendo .Active a true si previamente estaba como false equivale a .StartTransaction

Estableciendo .Active a false si previamente estaba como true equivale a .Rollback

Usando el paquete SQLdb

Para utilizar el paquete SQLdb son necesarios los componentes TSQLQuery y TSQLTransaction, además del componente TXXXConnection especifico para la conexión.

Aquí tenéis un breve tutorial:

Desde este punto, añadir controles es igual que para cualquier otra base de datos, de todos modos recapitulemos:

Por supuesto, esto es solamente el comienzo, pero obteniendo algunas datos en la grid suele ser usualmente el primer paso para asegurar que la conexión está funcionando. Se pueden encontrar explicaciones más detalladas en Working With TSQLQuery.

Aparte de la GRID podemos añadir componentes de la solapa Data Controls. Una vez que la GRID presenta datos, con estos componentes podemos mostrar valores individuales por ejemplo de uno o varios campos de un registro en modo texto (para ello seleccionamos en el inspector de objetos su fuente de datos y el campo que nos interese, o bien imágenes con un TDBImage (en este caso son valores binarios de tipo blob/bytea que debemos crear previamente a su uso en la tabla que utilicemos). Nos podemos mover de uno a otro registro con un TDBNavigator de forma sencilla que nos permite movernos por el dataset con next,prior...

Notas

Se pueden encontrar más detalles en SQLdb Programming Reference

Las páginas relacionadas con el paquete SQLdb fueron inicialmente escritas a partir de observaciones realizadas utilizando TPQConnection, PostgreSQL 8.1 bajo WinXP. Es de esperar resultados similares para otras bases de datos, de modo que si alguien los puede confirmar vendría bien tener aquí unas anotaciones del resultado.

Parece funcionar de modo similar en MySQL 5.0.45 bajo Win XP. La propiedad 'active' de TSQLTransaction no puede ser establecida a true, pero los datos obtenidos de la base de datos se pueden visualizar en el componente TDbGrid (se encuentra en la solapa DataControls).

Se puede encontrar algo más de información (notas y documentación) en el siguientes enlace:

http://z505.com/cgi-bin/powtils/docs/1.6/idx.cgi?file=fcldbnotes

Para ver el listados de clases disponibles para esta interfaz ir a:

http://z505.com/cgi-bin/powtils/docs/1.6/idx.cgi?file=index-4&unit=sqldb

--Jagluiperd 00:54, 11 September 2010 (CEST)


From the Free Pascal wiki, page "SQLdb Package/es", as it stood on 2017-06-19 after a change by Jma sp, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.