MySQL como complemento

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MySQL como complemento

Mensagem por JoséQuintas »

Hoje me chamou a atenção isto:

Código: Selecionar todos

      :cSQL := "SET @SOMA = 0"
      :ExecuteCmd()
      ...
      :cSQL := "SET @SOMA = NULL"
      :ExecuteCmd()
   ENDWITH
Porque?
Se existir alguma função interessante no MySQL, que não tem no Harbour/aplicativo, basta usar o MySQL.

Por exemplo, poderíamos validar o CPF/CNPJ no MySQL, ao invés de ter rotina no aplicativo.
Vantagem?
Se tá disponível no MySQL, tá disponível pra qualquer linguagem de programação, simples assim.

Não tá todo mundo aí dizendo que é melhor uma linguagem, ou outra linguagem....
Que é melhor programar pra Windows, Linux, Android, web, etc.....

Então... se tá no MySQL, tá disponível pra tudo.

Convém destacar outros pontos importantes:

- o Harbour não prende ninguém, o que prende.... é o DBF.
- usando Harbour, e transportando funções para o MySQL.... é como estar programando pra Windows, Linux, Android, Web, etc....

E se considerar um Access, que guarda telas e relatórios....
Só falta o banco de dados fazer isso, coisa que o Access fazia...

Ainda naquilo, de imaginar que o SQL é um "dBASE evoluído"....
Tá faltando o REPORT FORM no SQL pra gerar relatórios.... se é que isso já não existe.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MySQL como complemento

Mensagem por JoséQuintas »

Só reforçando as possibilidades.....

É comum alguns programadores usarem isto, pra facilitar enxergar o comando no fonte:

Código: Selecionar todos

cSQL := "update arquivo set valor = valor * @reajuste where data between cast( @datainicial as date ) and cast( @datafinal as date )"
cSQL := StrTran( cSQL, "@reajuste", NumberSQL( 1.10 )
cSQL := StrTran( cSQL, "@datainicial", DateSQL( Date() ) )
cSQL := StrTran( cSQL, "@datafinal", DateSQL( Date() ) )
cn:Execute( cSQL )
Então....
Não precisa fonte especial pra isso, podemos fazer assim:

Código: Selecionar todos

cn:Execute( "SET @REAJUSTE = " + NumberSQL( 1.10 ) )
cn:Execute( "SET @datainicial = " + DateSQL( Date() ) )
cn:Execute( "SET @datafinal = " + DateSQL( Date() ) )
cSQL := "update arquivo set valor = valor * @reajuste where data between cast( @datainicial as date ) and cast( @datafinal as date )"
Acaba sendo interessante, porque ao invés de uma "gambiarra", usamos algo existente pra isso.
Tudo bem que existem as stored procedures, mas isso abre mais possibilidades interessantes.

Nota:
Conforme encontrei pela internet, essas variáveis existem enquanto existir a conexão.
Fechou a conexão, some tudo, e dependendo do caso, pode ser interessante destruir: SET @VARIAVEL = NULL
É apenas mais uma "ferramenta" que pode ser usada, por enquanto só me veio na cabeça esse exemplo de uso.

Vou testar quais os tipos de conteúdo que são aceitos nisso....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

MySQL como complemento

Mensagem por JoséQuintas »

só aceita um único valor.
teste.png
Achei essa utilidade.
Ao invés de trazer o total, pra calcular o percentual sobre o total, dá pra trazer pronto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder