Função extenso() no MySQL

Forum sobre SQL.

Moderador: Moderadores

alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Função extenso() no MySQL

Mensagem por alxsts »

Olá!

Parabéns pelo trabalho!
JoséQuintas escreveu:Pelo HeidiSQL os comandos funcionam pra criação de função, mas executando via Harbour não
Como está fazendo?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso() no MySQL

Mensagem por JoséQuintas »

Executando cada arquivo como comando.
Também tentei separando os DELIMITER em comando separado.
Colocando no HeidiSQL funciona.
sql_stored_extenso.zip
(2.58 KiB) Baixado 422 vezes
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Acho que encontrei o problema, agora ver como vou resolver.
Adiciono ponto e vírgula aos comandos.
DELIMITER //;
Isso se torna inválido
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Nada ainda.

O que mais tem na internet é esse erro ref. criar função usando esse DELIMITER.
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Texto mais interessante que encontrei, apesar de não resolver.
Observe que a DELIMITERpalavra-chave é uma função apenas do mysqlcliente de linha de comando (e de alguns outros clientes) e não um recurso regular da linguagem MySQL. Não funcionará se você tentar passar por uma API da linguagem de programação para o MySQL.
https://qastack.com.br/programming/1025 ... s-in-mysql
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Resolvido.
DELIMITER é LIXO.
BEGIN-END já resolvem a questão do ponto e vírgula.
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Código: Selecionar todos

   WITH OBJECT cnSQL
      FOR EACH cFunction IN { "ze_extenso", "ze_ExtensoUnidade", "ze_ExtensoDezena", "ze_ExtensoCentena", "ze_ExtensoNumero" }
         :ExecuteCmd( "DROP FUNCTION IF EXISTS " + cFunction )
      NEXT
      FOR nCont = 1 TO 5
         :ExecuteCmd( ze_rawImage( "SQL_" + StrZero( nCont, 2 ) ), , .F. )
      NEXT
   ENDWITH
Deixando os SQL em resource, e executando direto.
sql_stored_extenso.zip
(2.51 KiB) Baixado 631 vezes
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Agora que isso ficou resolvido, vém a outra parte:

Acrescentar essas funções no BACKUP !

Convém pensar nisso, porque com certeza isso vai se expandir.
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

show.png
À primeira vista, pegar a lista de funções e usar o SHOW CREATE FUNCTION pra pegar o fonte de cada função.

O terminal/aplicativo envia o comando de cima, e recebe as informações de baixo.
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Estimativa conforme o post:

3 dias pra aprender a criar uma função no MySQL.
1 dia pra criar a função extenso funcionando.
1 dia final pra completar o ciclo .

Não foi perda de tempo, valeu a pena.

Nota: funcionou no MySQL e no MariaDB
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Função extenso() no MySQL

Mensagem por Itamar M. Lins Jr. »

Olá!
Isso é libertação!
O Harbour faz isso, mas saber em outras linguagens, amplia nossa visão dos processos.
Perder tempo é ficar procrastinando estudar outras linguagens, esperando cair do céu a solução que nós desejamos.
Por isso sempre lembro do Html que faz muita coisa e está ao alcance de todos.
Quem tem condições, compra "aquela" ferramenta, mas quem já possui uma liberdade mesmo com condições para comprar a tal ferramenta não quer pq tira esse gostinho de vitória por ter concluído um propósito e perceber que se libertou, ampliou mais ainda os horizontes.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso() no MySQL

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Olá!
Isso é libertação!
...
Por isso sempre lembro do Html que faz muita coisa e está ao alcance de todos.
Ponte que caiu !!!
Juntando MySQL, ADO, ASP, HTML, olhem isto:

Código: Selecionar todos

<% @LANGUAGE="VBSCRIPT" CODEPAGE="1252" %>
<%
DIM oConexao, oRegistro, cSql, cValor

Session.LCID = 1046 ' Portugues Brasil
cValor = Trim( Request.QueryString( "valor" ) )

SET oConexao = Server.CreateObject( "ADODB.Connection" )
oConexao.Open ConnectionString()
SET oRegistro = server.CreateObject( "ADODB.Recordset" )
cSql = "SELECT ze_Extenso( " & cValor & " ) AS texto;"
oRegistro.Open cSql, oConexao
response.write "<html><head /><body>" & oRegistro.Fields( "TEXTO" ).Value & "</body></html>"
oRegistro.Close
oConexao.Close
SET oRegistro = Nothing
SET oConexao = Nothing
%>
http://josequintas.com.br/extenso.asp?valor=454454.54
web.png
Tá no MySQL, tá pronto pra qualquer parada.
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Pra quem clicou no link e deu erro:
Andei modificando, porque o fonte acima não era seguro.
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

E só lembrando:
Se acessa via internet, estilo webservice, também estaria disponível no celular com android !!!!

O barato é muito doido.
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

Função extenso() no MySQL

Mensagem por JoséQuintas »

Tava revendo o tópico.

Fazem exatamente 6 meses que descobri como criar function/procedure no MySQL.
Só pra lembrar vocês também.
O negócio é começar, o resto vém com o tempo.
Conforme vai obtendo resultados, vai pegando confiança, e usando cada vez mais.
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