Clipper On Line • Ver Tópico - Otimização em telas

Otimização em telas

Discussão sobre SQL

Moderador: Moderadores

 

Otimização em telas

Mensagempor JoséQuintas » 01 Set 2020 12:39

O que tem a ver otimizar tela com SQL?
Muito.

Em DBF, isto é normal, e até pode ser em SQL também.

Encontra( nIdFinanceiro, "financeiro" )
nIdFinanceiro := financeiro->IdFinanceiro
nIdCliente     := financeiro->IdCliente
nIdPortador  := financeiro->idPortador
nValor := financeiro->Valor
@ 1, 0 SAY "id.financeiro" GET nIdFinanceiro
@ Row() + 1, 0 SAY "cliente:" GET nIdCliente
Encontra( nIdCliente, "clientes" )
@ Row(), 22 SAY clientes->CLInome
@ Row() + 1 SAY "portador:" GET nIdPortador
Encontra( nIdPortador, "portador" )
@ Row(), 22 SAY portador->PORNome
@ Row() + 1, SAY "valor" GET nValor
READ


Mas.... em SQL... podemos fazer isto:

WITH OBJECT cnSQL
   :cSQL := "SELECT FINANCEIRO.*, CLIENTES.clinome, PORTADOR.pornome ..."
   :Execute()
   nIdFinanceiro := :Number( "IDFINANCEIRO" )
   nIdCliente     := :Number( "IDCLIENTE" )
   nIdPortador  := :Number( "IDPORTADOR" )
   nValor := :Number( "VALOR" )
   @ 1, 0 SAY "id.financeiro" GET nIdFinanceiro
   @ Row() + 1, 0 SAY "cliente:" GET nIdCliente
   @ Row(), 22 SAY :String( "CLINOME" )
   @ Row() + 1 SAY "portador:" GET nIdPortador
   @ Row(), 22 SAY :String( "PORNOME" )
   @ Row() + 1, SAY "valor" GET nValor
   :CloseRecordset()
ENDWITH
   READ


Pra que pedir um pedacinho da tela por vez, se pode pedir a tela inteira de uma vez?
É mais rápido e economiza fonte.

Nota:
Se as tabelas tem nome de campo repetido, com SQL não é problema, é usar ALIAS pra usar outro nome.
Com certeza deixei pra fazer isso pra depois.
E tanto faz se é console ou GUI, isso ajuda nos dois casos.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Otimização em telas

Mensagempor JoséQuintas » 01 Set 2020 12:47

Lembrei de um recurso do VB6, que era fazer o "bind" do campo ao textbox.

Tradução:

Você criava a tela na IDE, vinculando o "get" ao campo do ADO.
Era só fazer SKIP (MoveNext()), e a tela já era atualizada automaticamente.
O mesmo pra inclusão - ao contrário do Harbour, o "append blank" é local, sem salvar no servidor, então podia ser preenchido e podia escolher entre salvar ou descartar tudo.

Pois é... uma IDE não se limita a apenas desenhar tela... vai muito além disso.
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: 18007
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