Classe:  FWDBAccess 
| Compatível Países: | Todos | 
| Sistemas Operacionais: | Todos | 
| Compatível às Bases de Dados: | Todos | 
| Nível de Acesso: | Nível 1 (Acesso Clientes) | 
| Idiomas: | Português, Inglês, Espanhol | 
| Versão | 1.0 | 
 FWDBAccess 
FWDBAccess
 Descrição 
Classe de camada para acesso a banco de dados do Protheus via TOTVSDBAcess Em situações onde se quer obter dados de uma base externa ao Protheus, como uma base de integração, por exemplo, pode-se fazer uso da classe de conexão. Para isso é preciso ter o TopConnect ( ou um outro TopConnect ) conectado a base onde se deseja conectar e obter dados. A ideia é simples, tudo que for rodar no TopConnect corrente usa comandos normais, tudo que rodar no outro banco tem que ser feito pelo objeto da classe. A classe controla toda a troca de área de conexão do TopConnect.
 New 
New
 Sintaxe 
FWDBAccess():New(< cDBMSAlias >, < cServer >, < nPort >)-> oSelf
 Descrição 
Construtor da Classe
 Parâmetros 
| Nome | Tipo | Descrição | Default | Obrigatório | Referência | |
| cDBMSAlias | Caracteres | String de conexão do banco composta do tipo de banco e alias existente no top. Ex. ORACLE/ENVTOP | X | |||
| cServer | Caracteres | IP ou nome do server onde está o TOTVSDBAcess onde se deseja conectar | X | |||
| nPort | Numérico | Porta do server onde está o TOTVSDBAcess onde se deseja conectar | X | 
 Retorno 
oSelf Objeto de conexão criado
 Exemplo 
// Instancia da Classe de Conexao ao TOTVSDBAcess
//New( , , )
// cDBMSAlias - Tipo/Nome da conexao configurada no TOTVSDBAcess
// cServer - Nome ou IP do Servidor onde esta o TOTVSDBAcess
// nPort - Porta do Servidor onde esta o TOTVSDBAcess
// Ex. oCnx := FWDBAccess():New( 'ORACLE/P10', '192.168.0.2' )
// oCnx := FWDBAccess():New( 'MSSQL7/ENVTOP', 'SERVIDOR' )
// oConx := FWDBAccess():New( 'ORACLE/ENVTOP', '172.162.0.5' )
oConx:SetConsoleError( .T. )
 Observações 
Aqui ainda não foi aberta a conexão propriamente, apenas criada a classe.
 Finish 
Finish
 Sintaxe 
FWDBAccess():Finish()-> NIL
 Descrição 
Finaliza uma conexão.
 Exemplo 
oConx:CloseConnection()
oConx:Finish() // <- Nao esquecer
 Observações 
Indispensável chamar o método Finish() dessa classe, pois as conexões devem ser fechadas e as tabelas abertas fechadas também.
 OpenConnection 
OpenConnection
 Sintaxe 
FWDBAccess():OpenConnection()-> lRet
 Descrição 
Abre uma conexao
 Retorno 
lRet Indica se efetuou ou não a conexão .T./.F.
 Exemplo 
// Conexao com base Externa
If !oConx:OpenConnection()
    cMsg := "Falha Conexão com a base Externa - Erro: " + AllTrim( oConx:ErrorMessage() )
    ConOut( cMsg )
    Return .F.
EndIf
 Veja também 
CloseConnection
 CloseConnection 
CloseConnection
 Sintaxe 
FWDBAccess():CloseConnection()-> lRet
 Descrição 
Fecha uma conexão.
 Retorno 
lRet Fechou ou nao a conexao .T./.F.
 Exemplo 
// Fecha conexao com a base externa
oConx:CloseConnection()
oConx:Finish() // <- Nao esquecer
 Veja também 
OpenConnection
 NewAlias 
NewAlias
 Sintaxe 
FWDBAccess():NewAlias(< cQuery >, < cAlias >, < aSetField >)-> cRet
 Descrição 
Cria uma Alias de trabalho temporaria baseado em uma query na conexão do objeto. Caso seja informada um nome de Alias esta será usada, caso contrário será gerada uma Alias automaticamente. O retorno é a Alias aberta, ou vazio não consiga executar.
 Parâmetros 
| Nome | Tipo | Descrição | Default | Obrigatório | Referência | |
| cQuery | Caracteres | Query para extracao de dados | X | |||
| cAlias | Caracteres | Alias a ser criado | X | |||
| aSetField | Array of Records | Vetor com os campos para execucao de TCSetField com a estrutura: [1] Nome do Campo [2] Tipo [3] Tamanho [4] Decimal  | X | 
 Retorno 
cRet Alias que foi usado
 Exemplo 
cAlias := GetNextAlias()
cQuery := "SELECT * FROM NOMEDATABELA"
oConx:NewAlias( cQuery, cAlias )
If oConx:HasError()
    cMsg := "Erro na selecao dos dados - Erro: [" + AllTrim( oConx:ErrorMessage() ) + "]"
    ConOut( cMsg )
    Return .F.
EndIf
 Observações 
Vale lembrar que você já deve ter aberto a conexão com o metodo OpenConnection() no seu Fonte.
 Veja também 
SQLExec, SPExec
 SQLExec 
SQLExec
 Sintaxe 
FWDBAccess():SQLExec(< cQuery >)-> lRet
 Descrição 
Executa uma query direto no banco.
 Parâmetros 
| Nome | Tipo | Descrição | Default | Obrigatório | Referência | |
| cQuery | Caracteres | Query a ser executado | X | 
 Retorno 
lRet Executou ou nao a query .T./.F.
 Exemplo 
// Rodando um insert ou update ou delete
cQuery := "UPDATE NOMEDATABELA SET CAMPO1='ABC', CAMPO2=2 "
If !oConx:SQLExec( cQuery )
    cMsg := "Erro na atualizacao dos dados - Erro: [" + AllTrim( oConx:ErrorMessage() ) + "]"
    ConOut( cMsg )
    Return .F.
EndIf
 Veja também 
NewAlias, SPExec
 SPExec 
SPExec
 Sintaxe 
FWDBAccess():SPExec(< cStoreProc >)-> lRet
 Descrição 
Executa uma Store Procedure direto no banco.
 Parâmetros 
| Nome | Tipo | Descrição | Default | Obrigatório | Referência | |
| cStoreProc | Caracteres | Store Procedure a ser executada | X | 
 Retorno 
lRet Indica se executou ou não a Store Procedure .T./.F.
 Exemplo 
If !oConx:SPExec( 'NomeDaProcedure' )
    cMsg := "Erro na execucao da procedure - Erro: [" + AllTrim( oConx:ErrorMessage() ) + "]"
    ConOut( cMsg )
EndIf
 Veja também 
NewAlias, SQLExec
 SetConsoleError 
SetConsoleError
 Sintaxe 
FWDBAccess():SetConsoleError(< lShow >)-> NIL
 Descrição 
Habilita exibição dos erros no console do Protheus
 Parâmetros 
| Nome | Tipo | Descrição | Default | Obrigatório | Referência | |
| lShow | Lógico | .T. habilita a exibição / .F. desabilita a exibição | X | 
 TransBegin 
TransBegin
 Sintaxe 
FWDBAccess():TransBegin()-> NIL
 Descrição 
Inicia controle de transação da conexão.
 Exemplo 
// Controlando transacao no outro lado
oConx:TransBegin()
If !oConx:SQLExec( 'INSERT .....' ) // OU 'UPDATE ...', 'DELETE... ', etc.
    // Faz o Disarm Transaction ( Rollback ) na base externa
    oConx:TransDisarm()
EndIf
// Faz o End Transaction na base externa
oConx:TransEnd()
 Veja também 
TransDisarm, TransEnd
 TransEnd 
TransEnd
 Sintaxe 
FWDBAccess():TransEnd()-> NIL
 Descrição 
Finaliza controle de transação da conexão.
 Exemplo 
// Controlando transacao no outro lado
oConx:TransBegin()
If !oConx:SQLExec( 'INSERT .....' ) // OU 'UPDATE ...', 'DELETE... ', etc.
    // Faz o Disarm Transaction ( Rollback ) na base externa
    oConx:TransDisarm()
EndIf
// Faz o End Transaction na base externa
oConx:TransEnd()
 Veja também 
TransBegin, TransDisarm
 TransDisarm 
TransDisarm
 Sintaxe 
FWDBAccess():TransDisarm()-> NIL
 Descrição 
Desarma a transação da conexão.
 Exemplo 
// Controlando transacao no outro lado
oConx:TransBegin()
If !oConx:SQLExec( 'INSERT .....' ) // OU 'UPDATE ...', 'DELETE... ', etc.
    // Faz o Disarm Transaction ( Rollback ) na base externa
    oConx:TransDisarm()
EndIf
// Faz o End Transaction na base externa
oConx:TransEnd()
 Veja também 
TransBegin, TransEnd
 FileExists 
FileExists
 Sintaxe 
FWDBAccess():FileExists(< cFile >)-> lRet
 Descrição 
Verifica a existência de uma tabela no banco.
 Parâmetros 
| Nome | Tipo | Descrição | Default | Obrigatório | Referência | |
| cFile | Caracteres | Nome da tabela | X | 
 Retorno 
lRet Existe ou nao a tabela .T./.F.
 Exemplo 
If !FileExists( 'SA1010' ) // Nome físico da tabela no banco
    ApMsgStop( "Tabela nao Existe" )
    Return NIL
EndIf
 HasError 
HasError
 Sintaxe 
FWDBAccess():HasError()-> lHasError
 Descrição 
Retorna se houve erro da operação.
 Retorno 
lHasError Houve ou não erro .T./ .F.
 Exemplo 
cAlias := GetNextAlias()
cQuery := "SELECT * FROM TABELADOOUTROLADO "
oConx:NewAlias( cQuery, cAlias )
If oConx:HasError()
    cMsg := "Erro na selecao dos dados - Erro: [" + AllTrim( oConx:ErrorMessage() ) + "]"
    ConOut( cMsg )
    Return .F.
EndIf
 SqlError 
SqlError
 Sintaxe 
FWDBAccess():SqlError()-> nSQLError
 Descrição 
Retorna codigo do erro da operacao.
 Retorno 
nSQLError Codigo do erro
 Exemplo 
If oConx:HasError()
    cMsg := "Erro na selecao dos dados - Erro: [" + AllTrim( Str( oConx:SqlError() ) ) + "]"
    ConOut( cMsg )
    Return .F.
EndIf
 ErrorMessage 
ErrorMessage
 Sintaxe 
FWDBAccess():ErrorMessage()-> cErrorMessage
 Descrição 
Retorna mensagem de erro da operação.
 Retorno 
cErrorMessage Mensagem de erro
 Exemplo 
If oConx:HasError()
    cMsg := "Erro na selecao dos dados - Erro: [" + AllTrim( Str( oConx:ErrorMessage() ) ) + "]"
    ConOut( cMsg )
    Return .F.
EndIf
 ClearError 
ClearError
 Sintaxe 
FWDBAccess():ClearError()-> NIL
 Descrição 
Limpa os dados de erro.
 HasConnection 
HasConnection
 Sintaxe 
FWDBAccess():HasConnection()-> lRet
 Descrição 
Indica se a conecão está feita.
 Retorno 
lRet Indica se está conectado ou nao .T./.F.
 Handle 
Handle
 Sintaxe 
FWDBAccess():Handle()-> nHandle
 Descrição 
Retorna handle da conexão.
 Retorno 
nHandle Número do handle da conexão
 ClassName 
ClassName
 Sintaxe 
FWDBAccess():ClassName()-> NIL
 Descrição 
Fornece o nome da classe
 ClassName 
ClassName
 Sintaxe 
FWDBAccess():ClassName()-> NIL
 Descrição 
Fornece o ID da classe
Import HTML Content
            Visão Geral
            Conteúdo das Ferramentas