Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Revisão sintática. exemplo com funções e exemplo com comandos

...

Bloco de código
languagecpp
themeEclipse
firstline1
linenumberstrue
collapsefalse

#include 'totvs.ch'
#include 'topconn.ch'

USER FUNCTION TEST()

  Local cAlias := "JOIN"
  Local cTablecTable1 := "T1"
Local cTable2 := "T2"
Local cQry   := "SELECT fieldT1_nameNOME, fieldT1_typeTIPO FROM t1T1 leftLEFT joinJOIN t2T2 on t1T1.fieldT1_nameNOME = t2T2.fieldT2_nickNICK"
  
  TCLink()
  
  TCDelFile("T1")
  TCDelFile("T2")
  
  DBCreate("T1"
IF TcCanOpen(cTable1)
	TCDelFile(cTable1)
Endif
IF TcCanOpen(cTable2)
	TCDelFile(cTable2)
Endif

DBCreate(cTable1, {{"FIELDT1_NAMENOME", "C", 10, 0}, ;
                  {"FIELD_TYPE			{"T1_TIPO", "C", 10, 0}}, "TOPCONN")
                  
  DBCreate("T2"cTable2, {{"FIELDT2_NICK", "C", 10, 0}, ;
                  {"FIELD			{"T2_AGE", "C", 10, 0}}, "TOPCONN")
                  
  DBUseArea(.T., "TOPCONN", cTablecTable1, (cTablecTable1), .F., .F. )
  
  (cTablecTable1)->( DBAppend( .F. ) )
  (cTablecTable1)->FIELD>T1_NAMENOME := "NOMEJOHN"
  (cTablecTable1)->FIELD>T1_TYPETIPO := "TIPOPESSOA"
  (cTablecTable1)->( DBCommit() )
  
  DBCloseArea()
  
  DBUseArea(.T., "TOPCONN", TCGenQry(NIL,NIL,cQry), (cAlias) , .F., .T. )
  
  WHILE !Eof()
    	CONOUT("FIELDT1_NAMENOME = " + (cAlias)->FIELD>T1_NAMENOME)
    	CONOUT("FIELDT1_TYPETIPO = " + (cAlias)->FIELD>T1_TYPETIPO)
    	DbSkip()
  ENDDO
  
  DBCloseArea()
  
  TCUnlink()
  
RETURN

O mesmo exemplo acima também pode ser escrito com COMANDOS do AdvPL – que em tempo de compilação são traduzidos para as chamadas das funções correspondentes. 

Exemplo com comandos


Bloco de código

#include 'totvs.ch'
#include 'topconn.ch'

USER FUNCTION TEST()

Local cAlias := "JOIN"
Local cTable1 := "T1"
Local cTable2 := "T2"
Local cQry   := "SELECT T1_NOME, T1_TIPO FROM T1 LEFT JOIN T2 ON T1.T1_NOME = T2.T2_NICK"

TCLink()

IF TcCanOpen(cTable1)
	TCDelFile(cTable1)
Endif
IF TcCanOpen(cTable2)
	TCDelFile(cTable2)
Endif

DBCreate(cTable1, {{"T1_NOME", "C", 10, 0}, ;
			{"T1_TIPO", "C", 10, 0}}, "TOPCONN")

DBCreate(cTable2, {{"T2_NICK", "C", 10, 0}, ;
			{"T2_AGE", "C", 10, 0}}, "TOPCONN")

USE (cTable1) ALIAS (cTable1) EXCLUSIVE NEW VIA "TOPCONN"

DBAppend( .F. )
REPLACE T1_NOME WITH "JOHN"
REPLACE T1_TIPO WITH "PESSOA"
DBCommit()

USE 

TCQUERY (cQry) ALIAS (cAlias) NEW 

WHILE !Eof()
	CONOUT("T1_NOME = " + (cAlias)->T1_NOME)
	CONOUT("T1_TIPO = " + (cAlias)->T1_TIPO)
	DbSkip()
ENDDO

USE

TCUnlink()

RETURN

Veja também

...