Controles de Acesso a Dados

A aba Acesso a Dados fornece 9 componentes de banco de dados para conexão com bancos locais e remotos. Todos os componentes compartilham uma interface comum para gerenciamento de conexão e execução de consultas.

Propriedades Comuns

Todos os componentes de banco de dados (exceto TDBFTable) compartilham estas propriedades de conexão:

PropriedadeTipoPadrãoDescrição
cHostString"localhost"Nome do host ou endereço IP do servidor de banco de dados
nPortNumericvariaPorta do servidor (padrão específico do driver)
cDatabaseString""Nome do banco de dados
cUserString""Nome de usuário de autenticação
cPasswordString""Senha de autenticação
lConnectedLogical.F.Status atual da conexão (somente leitura)
lAutoConnectLogical.F.Conectar automaticamente quando o formulário for ativado
cCharsetString"UTF8"Conjunto de caracteres para a conexão

Eventos Comuns

EventoCategoriaDescrição
OnConnectConexãoConectado com sucesso ao banco de dados
OnDisconnectConexãoDesconectado do banco de dados
OnErrorErroErro de conexão ou consulta. Params: nCode, cMessage
OnBeforeQueryConsultaDisparado antes da execução de uma consulta. Params: cSQL. Retorne .F. para cancelar
OnAfterQueryConsultaDisparado após a conclusão de uma consulta. Params: oResultSet, nRows

Métodos Comuns

MétodoDescrição
Connect()Abrir uma conexão com o servidor de banco de dados
Disconnect()Fechar a conexão
Execute( cSQL )Executar uma instrução SQL (INSERT, UPDATE, DELETE). Retorna nAffectedRows
Query( cSQL )Executar uma consulta SELECT. Retorna um objeto oResultSet
BeginTrans()Iniciar uma transação
Commit()Confirmar a transação atual
Rollback()Reverter a transação atual

TDBFTable CT_DBFTABLE = 53

Acesso nativo a tabelas xBase DBF. Fornece acesso direto a arquivos DBF/NTX/CDX sem um servidor. O formato de dados clássico do Harbour/Clipper.

PropriedadeTipoPadrãoDescrição
cFileString""Caminho para o arquivo .dbf
cAliasString""Nome do alias da área de trabalho
lSharedLogical.T.Abrir em modo compartilhado (multi-usuário)
lReadOnlyLogical.F.Abrir como somente leitura
cDriverString"DBFCDX"Driver RDD (DBFCDX, DBFNTX, DBFNSX)

TSQLite CT_SQLITE = 54

Banco de dados embarcado SQLite. Mecanismo de banco de dados sem configuração, sem servidor, em arquivo único.

PropriedadeTipoPadrãoDescrição
cFileString""Caminho para o arquivo .db ou .sqlite
lInMemoryLogical.F.Usar banco de dados em memória (sem arquivo)
lWALLogical.T.Habilitar Write-Ahead Logging para melhor concorrência
lForeignKeysLogical.T.Habilitar imposição de restrições de chave estrangeira

TMySQL CT_MYSQL = 55

Conector MySQL / MariaDB. Porta padrão: 3306.

PropriedadeTipoPadrãoDescrição
nPortNumeric3306Porta do servidor
lSSLLogical.F.Usar conexão SSL/TLS
lCompressLogical.F.Habilitar compressão de protocolo

TPostgreSQL CT_POSTGRESQL = 56

Conector PostgreSQL. Porta padrão: 5432.

PropriedadeTipoPadrãoDescrição
nPortNumeric5432Porta do servidor
cSchemaString"public"Esquema padrão
lSSLLogical.F.Usar conexão SSL/TLS

TFirebird CT_FIREBIRD = 57

Conector Firebird SQL. Porta padrão: 3050.

PropriedadeTipoPadrãoDescrição
nPortNumeric3050Porta do servidor
cRoleString""Nome da função SQL
nDialectNumeric3Dialeto SQL (1 ou 3)

TSQLServer CT_SQLSERVER = 58

Conector Microsoft SQL Server. Porta padrão: 1433.

PropriedadeTipoPadrãoDescrição
nPortNumeric1433Porta do servidor
lTrustedAuthLogical.F.Usar autenticação integrada do Windows
cAppNameString""Nome do aplicativo para monitoramento do servidor

TOracle CT_ORACLE = 59

Conector Oracle Database. Porta padrão: 1521.

PropriedadeTipoPadrãoDescrição
nPortNumeric1521Porta do servidor
cServiceNameString""Nome do serviço Oracle (alternativa ao cDatabase)
cSchemaString""Esquema padrão

TODBC CT_ODBC = 60

Conector ODBC genérico. Conecta a qualquer banco de dados com um driver ODBC.

PropriedadeTipoPadrãoDescrição
cDSNString""Nome da Fonte de Dados ODBC
cConnStringString""String de conexão ODBC completa (substitui propriedades individuais)

TADOConnection CT_ADO = 61

Conector ADO (ActiveX Data Objects). Somente Windows. Conecta a qualquer provedor OLE DB.

PropriedadeTipoPadrãoDescrição
cProviderString""Nome do provedor OLE DB
cConnStringString""String de conexão ADO completa
PlataformaDisponibilidade
WindowsSuporte completo via COM/OLE
macOSNão disponível
LinuxNão disponível

Exemplo de Código: Banco de Dados SQLite

// Conectando a um banco de dados SQLite e consultando dados

FUNCTION Main()

   LOCAL oDB, oRS

   // Criar e configurar a conexão SQLite
   oDB := TSQLite():New()
   oDB:cFile := "myapp.db"
   oDB:lWAL  := .T.

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

   // Conectar e criar uma tabela
   oDB:Connect()

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

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

   // Consultar dados
   oRS := oDB:Query( "SELECT * FROM customers 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 Acesso a Dados

Todos os componentes SQL compartilham a mesma interface Query/Execute. Troque de banco de dados simplesmente alterando a classe do componente -- o código do seu aplicativo permanece o mesmo. TDBFTable usa o modelo de navegação xBase clássico.

Nesta Página

Propriedades Comuns Eventos Comuns Métodos Comuns 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 TODBC CT_ODBC = 60 TADOConnection CT_ADO = 61 Exemplo de Código: Banco de Dados SQLite