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ão1.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

 

 NomeTipoDescriçãoDefaultObrigatórioReferência
 cDBMSAliasCaracteresString de conexão do banco composta do tipo de banco e alias existente no top. Ex. ORACLE/ENVTOP X 
 cServerCaracteresIP ou nome do server onde está o TOTVSDBAcess onde se deseja conectar X 
 nPortNuméricoPorta 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

 

 NomeTipoDescriçãoDefaultObrigatórioReferência
 cQueryCaracteresQuery para extracao de dados X 
 cAliasCaracteresAlias a ser criado X 
 aSetFieldArray of RecordsVetor 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

 

 NomeTipoDescriçãoDefaultObrigatórioReferência
 cQueryCaracteresQuery 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

 

 NomeTipoDescriçãoDefaultObrigatórioReferência
 cStoreProcCaracteresStore 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

 

 NomeTipoDescriçãoDefaultObrigatórioReferência
 lShowLó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

 

 NomeTipoDescriçãoDefaultObrigatórioReferência
 cFileCaracteresNome 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
  • Sem rótulos