[firebase-br] Revoke do PUBLIC

Mário Reis mariodosreyx em gmail.com
Quarta Agosto 9 07:57:15 -03 2023


Atenção não compilou no FB3.
Unsuccessful metadata update.
CREATE FUNCTION GET_ROUND_AS_ABNT failed.
Dynamic SQL Error.
Input parameter mismatch for function ROUND.
Claro que fui logo ver aqui: Available in: DSQL, PSQL Added in: 2.1
https://firebirdsql.org/refdocs/langrefupd21-intfunc-round.html
e logo percebi porque não compila: ROUND (*<number>* [, *<scale>*]) number
<> de P_VALOR double precision,
Logo, não pode compilar!
Fui ver no FB4.0 (Copy paste)e o mm erro
Unsuccessful metadata update.
CREATE FUNCTION GET_ROUND_AS_ABNT failed.
Dynamic SQL Error.
Input parameter mismatch for function ROUND.

SQL Code: -607
IB Error Number: 335544351

SQL Code: -607
IB Error Number: 335544351!
Entretanto resolvi o meu problema. Converti a(s) funções de Pascal
UDF_ROUNDDEC e respectivas dependências. Obrigado
Com os meus melhores cumprimentos
Mário Agostinho Reis
919262146

Esta mensagem contém informação de natureza confidencial e é
exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
receber este email agradecemos que não o copie nem o reenvie e que nos
notifique do ocorrido através do email de resposta.


Gladiston Santana <gladiston.santana em gmail.com> escreveu no dia segunda,
7/08/2023 à(s) 20:40:

> É estranho porque aqui compilou, infelizmente a lista não permite anexar
> imagens senão lhe mostraria.
> Por via das dúvidas, eu copiei e colei de volta, as vezes o plugin que
> mostra o código troca certos caracteres por tags e isso pode passar
> despercebido.
> Então copie e cole de volta no seu firebird.
>
> Mas a intenção é que ao olhar o codigo:
> https://gladiston.net.br/banco-de-dados/arredondamento-do-tipo-abnt/
>
> você possa ver a forma como eu arredondo usando cast e depois personalizo
> com GET_ROUND_AS_ABNT.
>
>
>
> Em sáb., 5 de ago. de 2023 às 09:23, Mário Reis <mariodosreyx em gmail.com>
> escreveu:
>
>> Boas Gladison,
>> CREATE FUNCTION GET_ROUND_AS_ABNT... NÃO COMPILAM mais! Os PARÂMETROS DE
>> Round() não estão bem!
>> Com os meus melhores cumprimentos
>> Mário Agostinho Reis
>> 919262146
>>
>> Esta mensagem contém informação de natureza confidencial e é
>> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
>> receber este email agradecemos que não o copie nem o reenvie e que nos
>> notifique do ocorrido através do email de resposta.
>>
>>
>> Gladiston Santana <gladiston.santana em gmail.com> escreveu no dia sexta,
>> 4/08/2023 à(s) 18:09:
>>
>>> Boa tarde!
>>> A função round pode retornar tanto inteiro como float:
>>>
>>> https://firebirdsql.org/file/documentation/html/en/refdocs/fblangref40/firebird-40-language-reference.html#fblangref40-scalarfuncs-round
>>>
>>> Às vezes o arredondamento não é do jeito que a gente quer, daí
>>> adaptações precisam ser feitas, por exemplo, aqui no Brasil temos um tipo
>>> de arredondamento usando uma norma ABNT que difere completamente do padrão
>>> sql-92, daí temos que criar uma sqlfunction adaptando a partir de uma
>>> função mais próxima. Veja esse exemplo:
>>> https://gladiston.net.br/banco-de-dados/arredondamento-do-tipo-abnt/
>>>
>>> Sabendo um pouco de psql vamos suprindo funções que não existem, se
>>> quiser pode pegar emprestado as que publiquei na minha pagina pessoal:
>>> https://gladiston.net.br/banco-de-dados/
>>>
>>> Em qui., 3 de ago. de 2023 às 21:37, Mário Reis <mariodosreyx em gmail.com>
>>> escreveu:
>>>
>>>> Boa tardes Gladison
>>>>
>>>> Você diz que há muito não usa udfs.
>>>> Estou tentando o mesmo mas esbarro em algumas dificuldades.
>>>> Ex: udf_rounddec(X, y) tentei o round(x, y) mas não é o mesmo. Retorna
>>>> um inteiro enquanto o outro retorna um double.
>>>> Como fazer num caso destes. Conhece o substituto? Obrigado
>>>>
>>>> Mário Reis (919262146)
>>>>
>>>> A quarta, 2 de ago de 2023, 17:03, Mário Reis <mariodosreyx em gmail.com>
>>>> escreveu:
>>>>
>>>>> Disponível para qualquer coisa. Embora com tempo mesmo escasso, sempre
>>>>> se arranja uma brecha.
>>>>> E, não está pronto porque ainda falta fazer o registo de
>>>>> correspondência de modo automática e enviar por mail.
>>>>> Nesta última parte, não faço, ainda, a menor ideia de como irei fazer,
>>>>> mas hei-de lá chegar.
>>>>> Atentamente
>>>>> Com os meus melhores cumprimentos
>>>>> Mário Agostinho Reis
>>>>> 919262146
>>>>>
>>>>> Esta mensagem contém informação de natureza confidencial e é
>>>>> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por
>>>>> engano,
>>>>> receber este email agradecemos que não o copie nem o reenvie e que nos
>>>>> notifique do ocorrido através do email de resposta.
>>>>>
>>>>>
>>>>> Mário Reis <mariodosreyx em gmail.com> escreveu no dia quarta, 2/08/2023
>>>>> à(s) 16:51:
>>>>>
>>>>>> O meu código está um pedaço (grande) sujo, mas se V. tiver pachorra
>>>>>> para dar um olhada e remover uns bugs  passo-te  já a seguir.
>>>>>> Eu antes nunca tinha trabalhado com basic de forma que ainda estou
>>>>>> tentando perceber o porque do "argument errors"
>>>>>> Com os meus melhores cumprimentos
>>>>>> Mário Agostinho Reis
>>>>>> 919262146
>>>>>>
>>>>>> Esta mensagem contém informação de natureza confidencial e é
>>>>>> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por
>>>>>> engano,
>>>>>> receber este email agradecemos que não o copie nem o reenvie e que nos
>>>>>> notifique do ocorrido através do email de resposta.
>>>>>>
>>>>>>
>>>>>> Gladiston Santana <gladiston.santana em gmail.com> escreveu no dia
>>>>>> segunda, 31/07/2023 à(s) 17:43:
>>>>>>
>>>>>>> Bacana Mario,
>>>>>>>
>>>>>>> Depois se tiver um tempo, me fala como você faz o acesso do swriter
>>>>>>> ou scalc ao banco.
>>>>>>> Um banco bem modelado e feito direitinho com triggers e triggers
>>>>>>> disparando procedures pode funcionar sem um sistema e tô querendo
>>>>>>> demonstrar isso no futuro e explicar que o banco bem modelado pode
>>>>>>> funcionar sem um sistema complexo por trás.
>>>>>>>
>>>>>>> []´s
>>>>>>>
>>>>>>> Em qui., 27 de jul. de 2023 às 16:47, Mário Reis <
>>>>>>> mariodosreyx em gmail.com> escreveu:
>>>>>>>
>>>>>>>> Pois! Entendo o que diz. Por exemplo os meus usuários via swriter e
>>>>>>>> através de umas macros que ando a aperfeiçoar, em basic, acedem à tabela
>>>>>>>> clientes da m/ FDB.
>>>>>>>> Chamam um novo documento e ele valida user e pwd cria o documento
>>>>>>>> com. N⁰ único, referente e data e com um botão vai à tabela cliente e
>>>>>>>> carrega o endereço fiscal etc...o sequencial único é gerado à maneira
>>>>>>>> antiga, dis dois todos trás o último e acrescento +1 e gravo . Num pequeno
>>>>>>>> escritório está a funcionar e agora ninguém mais grava o documento novo em
>>>>>>>> cima do velho perdendo-o.
>>>>>>>> Mas aí entram todos como Leitor que só lê não faz mais nada.
>>>>>>>>
>>>>>>>> A quinta, 27/07/2023, 17:23, Gladiston Santana <
>>>>>>>> gladiston.santana em gmail.com> escreveu:
>>>>>>>>
>>>>>>>>> No caso de UDFs e SQL Functions é complicado saber quem irá usar
>>>>>>>>> ou não, como são objetos que apenas retornam dados então como política eu
>>>>>>>>> dou acesso a PUBLIC. Embora hoje, não uso mais UDFs.
>>>>>>>>> Acho que a prática mais eficiente para permissões é você criar uma
>>>>>>>>> role, digamos "ROLE_VENDAS" e aplicar os acessos que o sistema de vendas
>>>>>>>>> precisa ter a este role. Daí quem se logar usando o sistema de vendas
>>>>>>>>> identifica-se com user_name, password, database, host e enfim ocultamente
>>>>>>>>> dentro do seu programa você informa também a ROLE_VENDAS e obterá todos os
>>>>>>>>> acessos necessários. Daí é só ficar associando usuários do sistema de
>>>>>>>>> vendas a ROLE_VENDAS, é muito mais fácil gerenciar dessa forma ao invés de
>>>>>>>>> individualmente, até porque, um usuario mal intencionado pode praticar
>>>>>>>>> modificações por fora do sistema usando um excel da vida.
>>>>>>>>>
>>>>>>>>> De inicio, voce pode criar uma ROLE_ADMIN e dar um "grant all to
>>>>>>>>> all" nela e associar todos os usuarios a ela e logar-se no sistema sempre
>>>>>>>>> usando esta ROLE. Daí ninguem mais reclama de acesso e por fora do
>>>>>>>>> sistema(ex. excel) o usuario não terá acesso algum, a menos que
>>>>>>>>> voce forneça o nome da role para ele.
>>>>>>>>>
>>>>>>>>> inte+
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Em qui., 27 de jul. de 2023 às 07:41, Mário Reis <
>>>>>>>>> mariodosreyx em gmail.com> escreveu:
>>>>>>>>>
>>>>>>>>>> Gladiston um bom dia para você,
>>>>>>>>>> Não não causou qualquer erro, pelo contrário ao fazer to public
>>>>>>>>>> os outros usuários não ficavam autorizados e conferi várias vezes o
>>>>>>>>>> *commit*
>>>>>>>>>> Há uma possibilidade de haver algum bug na ferramenta que uso o
>>>>>>>>>> EMS Sql Manager. Tive que fazer um script "à lá mano" com editor de texto e
>>>>>>>>>> depois correr
>>>>>>>>>> GRANT EXECUTE ON FUNCTION UDF_YEAR TO PUBLIC, + lista;
>>>>>>>>>> Eu achei muito estranho, pois de acordo com a documentação é como
>>>>>>>>>> você diz. Já escrevi para eles, que validaram o erro e propõem-se corrigir
>>>>>>>>>> na próxima release.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Gladiston Santana
>>>>>>> Escritório: 4787-3122 Ramal 228
>>>>>>> Cel Tim/WhatsApp: (11)95144-8188
>>>>>>>
>>>>>>
>>>
>>> --
>>> Gladiston Santana
>>> Escritório: 4787-3122 Ramal 228
>>> Cel Tim/WhatsApp: (11)95144-8188
>>>
>>
>
> --
> Gladiston Santana
> Escritório: 4787-3122 Ramal 228
> Cel Tim/WhatsApp: (11)95144-8188
>


Mais detalhes sobre a lista de discussão lista