Académique Documents
Professionnel Documents
Culture Documents
Classe: FWDBAccess
Compatvel Pases:
Todos
Sistemas Operacionais:
Todos
Todos
Nvel de Acesso:
Idiomas:
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
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
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