Você está na página 1de 7

FWDBAccess

Classe: FWDBAccess

Compatvel Pases:

Todos

Sistemas Operacionais:

Todos

Compatvel s Bases de Dados:

Todos

Nvel de Acesso:

Nvel 1 (Acesso Clientes)

Idiomas:

Portugus, Ingls, Espanhol

Verso

1.0

FWDBAccess
FWDBAccess
Descrio
Classe de camada para acesso a banco de dados do Protheus via TOTVSDBAcess Em situaes onde se quer obter dados de uma base
externa ao Protheus, como uma base de integrao, por exemplo, pode-se fazer uso da classe de conexo. 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 conexo do TopConnect.
New
New
Sintaxe
FWDBAccess():New(< cDBMSAlias >, < cServer >, < nPort >)-> oSelf
Descrio
Construtor da Classe
Parmetros

Nome

Tipo

Descrio

cDBMSAlias

Caracteres

String de
conexo do
banco composta
do tipo de banco
e alias existente
no top. Ex.
ORACLE/ENVT
OP

cServer

Caracteres

IP ou nome do
server onde est
o
TOTVSDBAcess
onde se deseja
conectar

nPort

Numrico

Porta do server
onde est o
TOTVSDBAcess
onde se deseja
conectar

Retorno
oSelf Objeto de conexo criado
Exemplo

Default

Obrigatrio

Referncia

// 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. )
Observaes
Aqui ainda no foi aberta a conexo propriamente, apenas criada a classe.
Finish
Finish
Sintaxe
FWDBAccess():Finish()-> NIL
Descrio
Finaliza uma conexo.
Exemplo
oConx:CloseConnection()
oConx:Finish() // <- Nao esquecer
Observaes
Indispensvel chamar o mtodo Finish() dessa classe, pois as conexes devem ser fechadas e as tabelas abertas fechadas tambm.
OpenConnection
OpenConnection
Sintaxe
FWDBAccess():OpenConnection()-> lRet
Descrio
Abre uma conexao
Retorno
lRet Indica se efetuou ou no a conexo .T./.F.
Exemplo
// Conexao com base Externa
If !oConx:OpenConnection()
cMsg := "Falha Conexo com a base Externa - Erro: " + AllTrim( oConx:ErrorMessage() )
ConOut( cMsg )
Return .F.
EndIf
Veja tambm
CloseConnection
CloseConnection
CloseConnection
Sintaxe
FWDBAccess():CloseConnection()-> lRet
Descrio
Fecha uma conexo.
Retorno
lRet Fechou ou nao a conexao .T./.F.
Exemplo
// Fecha conexao com a base externa
oConx:CloseConnection()
oConx:Finish() // <- Nao esquecer
Veja tambm
OpenConnection
NewAlias

NewAlias
Sintaxe
FWDBAccess():NewAlias(< cQuery >, < cAlias >, < aSetField >)-> cRet
Descrio
Cria uma Alias de trabalho temporaria baseado em uma query na conexo do objeto. Caso seja informada um nome de Alias esta ser usada,
caso contrrio ser gerada uma Alias automaticamente. O retorno a Alias aberta, ou vazio no consiga executar.
Parmetros

Nome

Tipo

Descrio

Default

Obrigatrio

cQuery

Caracteres

Query para
extracao de
dados

cAlias

Caracteres

Alias a ser
criado

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

Referncia

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
Observaes
Vale lembrar que voc j deve ter aberto a conexo com o metodo OpenConnection() no seu Fonte.
Veja tambm
SQLExec, SPExec
SQLExec
SQLExec
Sintaxe
FWDBAccess():SQLExec(< cQuery >)-> lRet
Descrio
Executa uma query direto no banco.
Parmetros

Nome

Tipo

Descrio

cQuery

Caracteres

Query a ser
executado

Default

Obrigatrio
X

Referncia

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 tambm
NewAlias, SPExec
SPExec
SPExec
Sintaxe
FWDBAccess():SPExec(< cStoreProc >)-> lRet
Descrio
Executa uma Store Procedure direto no banco.
Parmetros

Nome

Tipo

Descrio

cStoreProc

Caracteres

Store Procedure
a ser executada

Default

Obrigatrio

Referncia

Retorno
lRet Indica se executou ou no a Store Procedure .T./.F.
Exemplo
If !oConx:SPExec( 'NomeDaProcedure' )
cMsg := "Erro na execucao da procedure - Erro: [" + AllTrim( oConx:ErrorMessage() ) + "]"
ConOut( cMsg )
EndIf
Veja tambm
NewAlias, SQLExec
SetConsoleError
SetConsoleError
Sintaxe
FWDBAccess():SetConsoleError(< lShow >)-> NIL
Descrio
Habilita exibio dos erros no console do Protheus
Parmetros

TransBegin

Nome

Tipo

Descrio

lShow

Lgico

.T. habilita a
exibio / .F.
desabilita a
exibio

Default

Obrigatrio
X

Referncia

TransBegin
Sintaxe
FWDBAccess():TransBegin()-> NIL
Descrio
Inicia controle de transao da conexo.
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 tambm
TransDisarm, TransEnd
TransEnd
TransEnd
Sintaxe
FWDBAccess():TransEnd()-> NIL
Descrio
Finaliza controle de transao da conexo.
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 tambm
TransBegin, TransDisarm
TransDisarm
TransDisarm
Sintaxe
FWDBAccess():TransDisarm()-> NIL
Descrio
Desarma a transao da conexo.
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 tambm
TransBegin, TransEnd
FileExists
FileExists
Sintaxe
FWDBAccess():FileExists(< cFile >)-> lRet
Descrio

Verifica a existncia de uma tabela no banco.


Parmetros

Nome

Tipo

Descrio

cFile

Caracteres

Nome da tabela

Default

Retorno
lRet Existe ou nao a tabela .T./.F.
Exemplo
If !FileExists( 'SA1010' ) // Nome fsico da tabela no banco
ApMsgStop( "Tabela nao Existe" )
Return NIL
EndIf
HasError
HasError
Sintaxe
FWDBAccess():HasError()-> lHasError
Descrio
Retorna se houve erro da operao.
Retorno
lHasError Houve ou no 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
Descrio
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
Descrio
Retorna mensagem de erro da operao.
Retorno

Obrigatrio
X

Referncia

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
Descrio
Limpa os dados de erro.
HasConnection
HasConnection
Sintaxe
FWDBAccess():HasConnection()-> lRet
Descrio
Indica se a coneco est feita.
Retorno
lRet Indica se est conectado ou nao .T./.F.
Handle
Handle
Sintaxe
FWDBAccess():Handle()-> nHandle
Descrio
Retorna handle da conexo.
Retorno
nHandle Nmero do handle da conexo
ClassName
ClassName
Sintaxe
FWDBAccess():ClassName()-> NIL
Descrio
Fornece o nome da classe
ClassName
ClassName
Sintaxe
FWDBAccess():ClassName()-> NIL
Descrio
Fornece o ID da classe

Você também pode gostar