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:
| Propriedade | Tipo | Padrão | Descrição |
cHost | String | "localhost" | Nome do host ou endereço IP do servidor de banco de dados |
nPort | Numeric | varia | Porta do servidor (padrão específico do driver) |
cDatabase | String | "" | Nome do banco de dados |
cUser | String | "" | Nome de usuário de autenticação |
cPassword | String | "" | Senha de autenticação |
lConnected | Logical | .F. | Status atual da conexão (somente leitura) |
lAutoConnect | Logical | .F. | Conectar automaticamente quando o formulário for ativado |
cCharset | String | "UTF8" | Conjunto de caracteres para a conexão |
Eventos Comuns
| Evento | Categoria | Descrição |
OnConnect | Conexão | Conectado com sucesso ao banco de dados |
OnDisconnect | Conexão | Desconectado do banco de dados |
OnError | Erro | Erro de conexão ou consulta. Params: nCode, cMessage |
OnBeforeQuery | Consulta | Disparado antes da execução de uma consulta. Params: cSQL. Retorne .F. para cancelar |
OnAfterQuery | Consulta | Disparado após a conclusão de uma consulta. Params: oResultSet, nRows |
Métodos Comuns
| Método | Descriçã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.
| Propriedade | Tipo | Padrão | Descrição |
cFile | String | "" | Caminho para o arquivo .dbf |
cAlias | String | "" | Nome do alias da área de trabalho |
lShared | Logical | .T. | Abrir em modo compartilhado (multi-usuário) |
lReadOnly | Logical | .F. | Abrir como somente leitura |
cDriver | String | "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.
| Propriedade | Tipo | Padrão | Descrição |
cFile | String | "" | Caminho para o arquivo .db ou .sqlite |
lInMemory | Logical | .F. | Usar banco de dados em memória (sem arquivo) |
lWAL | Logical | .T. | Habilitar Write-Ahead Logging para melhor concorrência |
lForeignKeys | Logical | .T. | Habilitar imposição de restrições de chave estrangeira |
TMySQL CT_MYSQL = 55
Conector MySQL / MariaDB. Porta padrão: 3306.
| Propriedade | Tipo | Padrão | Descrição |
nPort | Numeric | 3306 | Porta do servidor |
lSSL | Logical | .F. | Usar conexão SSL/TLS |
lCompress | Logical | .F. | Habilitar compressão de protocolo |
TPostgreSQL CT_POSTGRESQL = 56
Conector PostgreSQL. Porta padrão: 5432.
| Propriedade | Tipo | Padrão | Descrição |
nPort | Numeric | 5432 | Porta do servidor |
cSchema | String | "public" | Esquema padrão |
lSSL | Logical | .F. | Usar conexão SSL/TLS |
TFirebird CT_FIREBIRD = 57
Conector Firebird SQL. Porta padrão: 3050.
| Propriedade | Tipo | Padrão | Descrição |
nPort | Numeric | 3050 | Porta do servidor |
cRole | String | "" | Nome da função SQL |
nDialect | Numeric | 3 | Dialeto SQL (1 ou 3) |
TSQLServer CT_SQLSERVER = 58
Conector Microsoft SQL Server. Porta padrão: 1433.
| Propriedade | Tipo | Padrão | Descrição |
nPort | Numeric | 1433 | Porta do servidor |
lTrustedAuth | Logical | .F. | Usar autenticação integrada do Windows |
cAppName | String | "" | Nome do aplicativo para monitoramento do servidor |
TOracle CT_ORACLE = 59
Conector Oracle Database. Porta padrão: 1521.
| Propriedade | Tipo | Padrão | Descrição |
nPort | Numeric | 1521 | Porta do servidor |
cServiceName | String | "" | Nome do serviço Oracle (alternativa ao cDatabase) |
cSchema | String | "" | Esquema padrão |
TODBC CT_ODBC = 60
Conector ODBC genérico. Conecta a qualquer banco de dados com um driver ODBC.
| Propriedade | Tipo | Padrão | Descrição |
cDSN | String | "" | Nome da Fonte de Dados ODBC |
cConnString | String | "" | 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.
| Propriedade | Tipo | Padrão | Descrição |
cProvider | String | "" | Nome do provedor OLE DB |
cConnString | String | "" | String de conexão ADO completa |
| Plataforma | Disponibilidade |
| Windows | Suporte completo via COM/OLE |
| macOS | Não disponível |
| Linux | Nã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.