Página 3 de 3

Função extenso() no MySQL

Enviado: 13 Abr 2021 21:31
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?

Função extenso() no MySQL

Enviado: 14 Abr 2021 07:14
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

Função extenso() no MySQL

Enviado: 14 Abr 2021 09:03
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

Função extenso() no MySQL

Enviado: 14 Abr 2021 09:47
por JoséQuintas
Nada ainda.

O que mais tem na internet é esse erro ref. criar função usando esse DELIMITER.

Função extenso() no MySQL

Enviado: 14 Abr 2021 10:25
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

Função extenso() no MySQL

Enviado: 14 Abr 2021 10:35
por JoséQuintas
Resolvido.
DELIMITER é LIXO.
BEGIN-END já resolvem a questão do ponto e vírgula.

Função extenso() no MySQL

Enviado: 14 Abr 2021 10:41
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 632 vezes

Função extenso() no MySQL

Enviado: 14 Abr 2021 11:49
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.

Função extenso() no MySQL

Enviado: 14 Abr 2021 11:54
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.

Função extenso() no MySQL

Enviado: 14 Abr 2021 12:03
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

Função extenso() no MySQL

Enviado: 14 Abr 2021 12:23
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.

Função extenso() no MySQL

Enviado: 14 Abr 2021 12:42
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.

Função extenso() no MySQL

Enviado: 14 Abr 2021 13:10
por JoséQuintas
Pra quem clicou no link e deu erro:
Andei modificando, porque o fonte acima não era seguro.

Função extenso() no MySQL

Enviado: 14 Abr 2021 13:42
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.

Função extenso() no MySQL

Enviado: 09 Out 2021 13:00
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.