Clipper On Line • Ver Tópico - Debug do Harbour com SQL ???

Debug do Harbour com SQL ???

Discussão sobre SQL

Moderador: Moderadores

 

Debug do Harbour com SQL ???

Mensagempor JoséQuintas » 15 Out 2021 10:32

debug.png


E não é que aceitou...
Com aquela funçãozinha que eu tinha criado, estou executando um comando SQL no debug.

Nota:
É que a rotina vai usar vários bancos de dados.
Estou só confirmando qual o banco de dados em uso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18015
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Debug do Harbour com SQL ???

Mensagempor JoséQuintas » 15 Out 2021 11:14

debug.png


Como era de se imaginar, também funciona no watchpoint.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18015
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Debug do Harbour com SQL ???

Mensagempor JoséQuintas » 15 Out 2021 12:11

teste.png



#include "directry.ch"
#include "inkey.ch"

PROCEDURE pTESBASE

   LOCAL cEmpresa, aGeralList := {}, cTable, aTableList, oFile, nPos, aDatabaseList := {}, cnSQL := ADOLocal()

   Altd()
   WITH OBJECT cnSQL
      :Execute( "SHOW DATABASES" )
      DO WHILE ! :Eof()
         IF hb_AScan( { "sys", "schema", "josequintas", "mysql" }, { | e | e $ Lower( :String( "Database" ) ) } ) == 0
            AAdd( aDatabaseList, :String( "Database" ) )
         ENDIF
         :MoveNext()
      ENDDO
      :CloseRecordset()

      FOR EACH cEmpresa IN aDatabaseList
         :ExecuteCmd( "USE " + cEmpresa )
         aTableList := :TableList()
         FOR EACH cTable IN aTableList
            IF ( nPos := hb_AScan( aGeralList, { | e | e[ 1 ] == cTable } ) ) == 0
               AAdd( aGeralList, { cTable, {} } )
               nPos := Len( aGeralList )
            ENDIF
            AAdd( aGeralList[ nPos, 2 ], cEmpresa )
         NEXT
      NEXT
   ENDWITH
   FOR EACH oFile IN aGeralList
      IF Len( oFile[ 2 ] ) != Len( aDatabaseList )
         IF Len( oFile[ 2 ] ) < 3
            SayScroll( oFile[ 1 ] + " só tem em " + oFile[ 2 ][ 1 ] + iif( Len( oFIle[ 2 ] ) < 2, "", " " + oFile[ 2 ][ 2 ] ) )
         ELSE
            FOR EACH cEmpresa IN aDatabaseList
               IF hb_ASCan( oFile[ 2 ], cEmpresa ) == 0
                  SayScroll( oFile[ 1 ] + " falta em " + cEmpresa )
                  Inkey(1)
               ENDIF
            NEXT
         ENDIF
      ENDIF
   NEXT
   SayScroll( "Fim" )
   Inkey(0)

   RETURN


Quanto ao teste, em alguns casos melhor mostrar aonde tem, do que aonde falta.

Isso é pra ajudar a fazer uma limpa, ou pra ajustar as atualizações.
Vai ser interessante também criar uma rotina pra comparar os campos das tabelas, e procedures, e functions, e outros.
Nessas horas, só com debug mesmo pra eventuais problemas.

E sempre ficam restos de testes nos databases....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18015
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Debug do Harbour com SQL ???

Mensagempor JoséQuintas » 15 Out 2021 12:37

É um fonte relaticamente simples, pra quem está acostumado com array.

Crio um array com o nome de cada tabela e uma lista.
AAdd( aGeralList, { cTable, {} } )


Nessa lista vou adicionando aonde a tabela aparece. - aGeralList[ nPos ][ 2 ]

Se tem em tudo, o tamanho dessa lista vai ser igual ao tamanho da lista de databases - aDatabaseList

Se estiver diferente, é porque sobra ou falta em algum.

Uso a quantidade (tamanho da lista) pra definir se estaria sobrando ou faltando.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18015
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro