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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas