Controles de Acceso a Datos

La pestania Acceso a Datos proporciona 9 componentes de base de datos para conectarse a bases de datos locales y remotas. Todos los componentes comparten una interfaz comun para gestion de conexiones y ejecucion de consultas.

Propiedades Comunes

Todos los componentes de base de datos (excepto TDBFTable) comparten estas propiedades de conexion:

PropiedadTipoValor predet.Descripcion
cHostString"localhost"Nombre de host o direccion IP del servidor de base de datos
nPortNumericovariaPuerto del servidor (predeterminado especifico del controlador)
cDatabaseString""Nombre de la base de datos
cUserString""Nombre de usuario de autenticacion
cPasswordString""Contrasena de autenticacion
lConnectedLogico.F.Estado actual de la conexion (solo lectura)
lAutoConnectLogico.F.Conectar automaticamente cuando se activa el formulario
cCharsetString"UTF8"Juego de caracteres para la conexion

Eventos Comunes

EventoCategoriaDescripcion
OnConnectConexionConectado exitosamente a la base de datos
OnDisconnectConexionDesconectado de la base de datos
OnErrorErrorError de conexion o consulta. Parametros: nCode, cMessage
OnBeforeQueryConsultaSe dispara antes de ejecutar una consulta. Parametros: cSQL. Devuelva .F. para cancelar
OnAfterQueryConsultaSe dispara despues de que una consulta se completa. Parametros: oResultSet, nRows

Metodos Comunes

MetodoDescripcion
Connect()Abrir una conexion al servidor de base de datos
Disconnect()Cerrar la conexion
Execute( cSQL )Ejecutar una sentencia SQL (INSERT, UPDATE, DELETE). Devuelve nAffectedRows
Query( cSQL )Ejecutar una consulta SELECT. Devuelve un objeto oResultSet
BeginTrans()Iniciar una transaccion
Commit()Confirmar la transaccion actual
Rollback()Revertir la transaccion actual

TDBFTable CT_DBFTABLE = 53

Acceso nativo a tablas xBase DBF. Proporciona acceso directo a archivos DBF/NTX/CDX sin servidor. El formato de datos clasico de Harbour/Clipper.

PropiedadTipoValor predet.Descripcion
cFileString""Ruta al archivo .dbf
cAliasString""Nombre del alias del area de trabajo
lSharedLogico.T.Abrir en modo compartido (multiusuario)
lReadOnlyLogico.F.Abrir como solo lectura
cDriverString"DBFCDX"Controlador RDD (DBFCDX, DBFNTX, DBFNSX)

TSQLite CT_SQLITE = 54

Base de datos embebida SQLite. Motor de base de datos sin configuracion, sin servidor, de archivo unico.

PropiedadTipoValor predet.Descripcion
cFileString""Ruta al archivo .db o .sqlite
lInMemoryLogico.F.Usar una base de datos en memoria (sin archivo)
lWALLogico.T.Habilitar Write-Ahead Logging para mejor concurrencia
lForeignKeysLogico.T.Habilitar aplicacion de restricciones de claves foraneas

TMySQL CT_MYSQL = 55

Conector cliente MySQL / MariaDB. Puerto predeterminado: 3306.

PropiedadTipoValor predet.Descripcion
nPortNumerico3306Puerto del servidor
lSSLLogico.F.Usar conexion SSL/TLS
lCompressLogico.F.Habilitar compresion de protocolo

TPostgreSQL CT_POSTGRESQL = 56

Conector cliente PostgreSQL. Puerto predeterminado: 5432.

PropiedadTipoValor predet.Descripcion
nPortNumerico5432Puerto del servidor
cSchemaString"public"Esquema predeterminado
lSSLLogico.F.Usar conexion SSL/TLS

TFirebird CT_FIREBIRD = 57

Conector cliente Firebird SQL. Puerto predeterminado: 3050.

PropiedadTipoValor predet.Descripcion
nPortNumerico3050Puerto del servidor
cRoleString""Nombre del rol SQL
nDialectNumerico3Dialecto SQL (1 o 3)

TSQLServer CT_SQLSERVER = 58

Conector cliente Microsoft SQL Server. Puerto predeterminado: 1433.

PropiedadTipoValor predet.Descripcion
nPortNumerico1433Puerto del servidor
lTrustedAuthLogico.F.Usar autenticacion integrada de Windows
cAppNameString""Nombre de la aplicacion para monitoreo del servidor

TOracle CT_ORACLE = 59

Conector cliente Oracle Database. Puerto predeterminado: 1521.

PropiedadTipoValor predet.Descripcion
nPortNumerico1521Puerto del servidor
cServiceNameString""Nombre del servicio Oracle (alternativa a cDatabase)
cSchemaString""Esquema predeterminado

TMariaDB CT_MARIADB = 60

Conector cliente MariaDB. Puerto predeterminado: 3306.

PropiedadTipoValor predet.Descripcion
nPortNumerico3306Puerto del servidor
lSSLLogico.F.Usar conexion SSL/TLS

TMongoDB CT_MONGODB = 61

Conector cliente MongoDB. Base de datos NoSQL orientada a documentos. Puerto predeterminado: 27017.

PropiedadTipoValor predet.Descripcion
nPortNumerico27017Puerto del servidor
cCollectionString""Coleccion predeterminada

Ejemplo de Codigo: Base de Datos SQLite

// Conectar a una base de datos SQLite y consultar datos

FUNCTION Main()

   LOCAL oDB, oRS

   // Crear y configurar la conexion SQLite
   oDB := TSQLite():New()
   oDB:cFile := "miapp.db"
   oDB:lWAL  := .T.

   oDB:OnError := { |n, c| QOut( "Error BD: " + c ) }

   // Conectar y crear una tabla
   oDB:Connect()

   oDB:Execute( "CREATE TABLE IF NOT EXISTS clientes (" + ;
               "  id INTEGER PRIMARY KEY AUTOINCREMENT,"  + ;
               "  name TEXT NOT NULL,"                    + ;
               "  email TEXT,"                             + ;
               "  city TEXT )" )

   // Insertar registros
   oDB:Execute( "INSERT INTO clientes (name, email, city) VALUES ('John', 'john@test.com', 'NYC')" )
   oDB:Execute( "INSERT INTO clientes (name, email, city) VALUES ('Maria', 'maria@test.com', 'Madrid')" )

   // Consultar datos
   oRS := oDB:Query( "SELECT * FROM clientes ORDER BY name" )

   DO WHILE ! oRS:Eof()
      QOut( oRS:FieldGet( "name" ), oRS:FieldGet( "email" ) )
      oRS:MoveNext()
   ENDDO

   oRS:Close()
   oDB:Disconnect()

RETURN NIL
9 Controles de Acceso a Datos

Todos los componentes basados en SQL comparten la misma interfaz Query/Execute. Cambie de base de datos simplemente cambiando la clase del componente; el codigo de su aplicacion permanece igual. TDBFTable usa el modelo de navegacion xBase clasico.

En Esta Página

Propiedades Comunes Eventos Comunes Metodos Comunes TDBFTable CT_DBFTABLE = 53 TSQLite CT_SQLITE = 54 TMySQL CT_MYSQL = 55 TPostgreSQL CT_POSTGRESQL = 56 TFirebird CT_FIREBIRD = 57 TSQLServer CT_SQLSERVER = 58 TOracle CT_ORACLE = 59 TMariaDB CT_MARIADB = 60 TMongoDB CT_MONGODB = 61 Ejemplo de Codigo: Base de Datos SQLite