INSTALLING JEDI FOR DELPHI XE5

Learn step by step how to install the "JEDI" in RAD Studio Delphi XE5

How to use Sublime Text Editor to Develop in Python

Learn how to use Sublime Text Editor to compile Python projects: Setup, Setup, and Setup

Python: A Biblioteca Math

Understand more about the project, Business Developer!

segunda-feira, 30 de setembro de 2019

Errors in Delphi #3: Arithmetic overflow error type varchar, value = -155555555.000000

Estava numa tela onde tinha um DBGrid, e ao pesquisar em massa por vários registros, 
acontecia o seguinte erro:

Arithmetic overflow error type varchar, value = -155555555.000000

A mensagem do erro é bem nítida, a conversão de determinado valor para string ou varchar, está relatando o erro acima.

1ª Dica: Se o fluxo que estiver testando tiver muitas querys em modo cascata, teste query por query, as que não estiverem notificando a seguinte mensagem, elimine - a do fluxo, pois ela não será o problema.

2ª Dica: Quando descobrir, através da 1ª dica qual é a query que está ocasionando o problema, pegue o texto sql, e execute dentro do banco de dados, passando os parâmetros de entrada.

3ª Dica: Pode ser qualquer função ou procedure, que esteja vinculada no processo em cascata das suas querys. 

Para corrigir o problema:

Na situação real do erro, foi um função que era disparada no oncalcfields de uma determinada query. Dentro da função, o retorno de seu valor era muito extenso, e o limite do campo de retorno da função era menor, foi só ajustar o tamanho do campo para pegar um valor maior. Por exemplo, o tipo do campo era VARCHAR de tamanho 10, VARCHAR(10), foi só alterar o tamanho do campo para tamanho 60, VARCHAR(60).

PROBLEMA:
DECLARE @RETORNO VARCHAR(10) 

SOLUÇÃO:
DECLARE @RETORNO VARCHAR(60)

sexta-feira, 6 de setembro de 2019

C ++ : Primeiro programa em C


Na linha 1, #include <stdio.h>, diz ao compilador do programa Dev C++ que ele deve incluir o arquivo - cabeçalho stdio.h. Este arquivo leva as configurações de entradas e saídas padronizadas de dados .

Na linha 2, /* Primeiro Programa */, é um comentário. Ele é formado pelas barras e os asteriscos, e entre eles a descrição do comentário.

Na linha 3, temos uma função chamada main, esta é a função que será chamada na execução do programa. Todos os programas em C, tem uma função chamada main. O conteúdo da função é todo delimitado por chaves, então tudo o que estiver entre as chaves, será executada assim que a função for chamada. No início o int que está antes do main indica que esta função terá como retorno um tipo de dado inteiro.

Na linha 4, temos a função printf, é por causa desta função que usamos a biblioteca <stdio.h>. A função será necessária apenas para mostrar a string passada como argumento para a tela do computador. No final do argumento mostra - se \n, que servirá para fazer a quebra de linha.

Na linha 5, temos return(0), significa o número inteiro que está sendo retornado para a função.

sexta-feira, 16 de agosto de 2019

[Delphi] Erro: Unsatisfied forward or external declaration

[Delphi] Erro: Unsatisfied forward or external declaration, este erro geralmente acontece quando se declara uma função, procedure, independente do tipo, mas na sua chamada, na sua declaração, você não menciona de qual form ela foi criada, se ela não tiver vindo de uma biblioteca específica.

Por exemplo:

Nome do Formulário: FrmTeste

public
 function VerdadeiroouFalso: Boolean;

.
.
.
TFrmTeste.VerdadeiroOuFalso: Boolean;
begin
  Showmessage('Teste')!
end

quarta-feira, 12 de setembro de 2018

Errors in Delphi #2: [SQL Server Native Client 10.0][SQL Server]Arithmetic overflow error type varchar, value = -0.000000.


Estava numa tela onde esta tinha um DBGrid, e ao selecionar o registro dentro dele,  acontecia o seguinte erro:
[SQL Server Native Client 10.0][SQL Server]
Arithmetic overflow error type varchar, value = -0.000000.

A mensagem do erro é bem nítida, a conversão de determinado valor para string ou varchar, está relatando o seguinte erro.

1ª Dica: Se o fluxo que estiver testando tiver muitas querys em modo cascata, teste query por query, as que não estiverem notificando a seguinte mensagem, elimine - a do fluxo, pois ela não será o problema.

2ª Dica: Quando descobrir, através da 1ª dica qual é a query que está ocasionando o problema, pegue o texto sql, e execute dentro do banco de dados, passando os parâmetros de entrada.

Na situação real do erro, o meu texto sql estava com o problema no seguinte comando: Convert(Varchar(12), A - B), onde A e B são campos do tipo float. O problema estava na subtração de A e B, pois a dízima da subtração era um número tão extenso, que dava erro.

Para corrigir o problema, fez se necessário fazer primeiramente uma conversão para o resultado ser do tipo decimal(18,2), para depois convertê - lo para string ou varchar. 

SOLUÇÃO:
CONVERT(DECIMAL(18,2), ROUND(A - B, 3, 1))

sábado, 1 de setembro de 2018

Delphi: trystrtofloat - conversão de string para float


Para usar a função nativa do Delphi, TryStrToFloat, é necessário declarar na uses da unit, a biblioteca, SysUtils ou System.Utils, como é uma função, o seu retorno será do tipo boolean, true(verdadeiro) ou false(falso).

Exemplo: 
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  f: double;
begin
  s := '127,258';
  if TryStrToFloat(s, f) then {true}
    ShowMessage('Ok! ' + FormatFloat('#0.00', f))
  else {false}
    ShowMessage(s + ' não é um número float válido!');
end;

Observação: Com essa função nativa do Delphi, não é mais necessário fazer um bloco 
try...except...endpara fazer tal validação.

[Fonte: Show Delphi]

quarta-feira, 29 de agosto de 2018

Python: Variáveis

Para entendermos melhor sobre Python, você precisa saber que essa linguagem é de:                                              TIPAGEM DINÂMICA E FORTE

Para uma linguagem ser designada de tipagem dinâmica e forte, significa que o interpretador da linguagem, no caso, Python, infere o tipo de dados que uma variável recebe, sem a necessidade de determinar ou declarar o tipo da varável. Em outras palavras, os tipos das variáveis não precisam serem declarados, através das suas atribuições, elas são automaticamente declaradas.


No primeiro exemplo acima, criei uma variável intitulada nome, e dentro da mesma atribui um valor, 'Dom Pedro I'. Pode - se observar que ao procurar saber o tipo da variável, o interpretador já a reconhece como string, pois a variável está entre duas aspas simples.

No segundo exemplo, criei uma variável intitulada idade, e dentro da mesma atribui um valor, '23'. Pode - se observar que ao procurar saber o tipo da variável, o interpretador já a reconhece como string, pois a variável está entre duas aspas simples, embora dentro da mesma esteja um número.

No terceiro exemplo, criei uma variável intitulada idade, e dentro da mesma atribui um valor: 29. Pode - se observar que ao procurar saber o tipo da variável, o interpretador já a reconhece como inteiro, pois a numeração da variável não está entre duas aspas simples e a verificação do interpretador, reconhece que é um número natural.

terça-feira, 28 de agosto de 2018

Python: A Biblioteca math


Para a explicação da biblioteca "math"
utilizarei o Sublime Text Editor 3 e a versão do Phyton 3, 
na plataforma Windows.

A biblioteca "math" contém várias funções matemáticas que podemos utilizar.
Para utilizarmos esta biblioteca vamos a seguinte linha de comando:
import math

1 - Para arredondarmos um valor real para o inteiro mais próximo e acima, utilizamos o método: ceil
exemplo(s) matemáticos:

                                         round(6.01) = 7
                                         round(6.75) = 7
                                         round(6.89) = 7


2 - Para remover o sinal de positivo ou negativo do valor, deixando apenas o valor: fabs

3 - Para calcular o fatorial de um valor x, utilizaremos o método: factorial
exemplo(s) matemático(s): 

                                           fatorial de 3 = 3! = 3 * 2 * 1 = 6
                                           fatorial de 7 = 7! = 7 * 6 * 5 * 4 * 3 * 2 * 1 = 5040
                                           fatorial de 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120




4 - Para deixar somente a parte inteira de um valor, truncaremos o valor real para inteiro, utilizaremos o método: floor
exemplo(s) matemáticos: 

                                        trunc(8.789546321) = 8
                                        trunc(189.7410) = 189
                                        trunc(753.1596) = 753


5 - Para calcular a potenciação ou exponenciação de um valor, utilizaremos o método: exp
exemplo(s) matemáticos:

base: 2.718281828459045
expoentes: 2 , 3 ,1
potências: 7.38905609893065 , 20.085536923187668 , 2.718281828459045

                                  2.718281828459045 ²  = 7.38905609893065
                                  2.718281828459045 ³  = 20.085536923187668
                                  2.718281828459045 ¹  = 2.718281828459045


6 - Para calcular o logaritmo de um valor, utilizaremos o método: log
exemplo(s) matemáticos: log3 9 = x

loga b = x → log3 9 = x
a = 3 = base
b = 9 = logaritmando
x = logaritmo
Como loga b = x ↔ ax = b, então:
log3 9 = x ↔ 3x = 9
3x = 9 → Fatore o logaritmando 9. A fatoração é: 9 = 3 . 3 = 32
3X = 32 → Como a base é o número 3 e temos uma igualdade, podemos então igualar os expoentes para encontrar o valor de x.
x = 2.
Substituindo x por 2 no log, temos:
log3 9 = x → log3 9 = 2

Em Python, a constante e, de valor: 2.718281828459045, é a base, e o valor de x,
em math.log(x), onde x é o logaritmando, e o resultado é o logaritmo.



7 - Para calcular o logaritmo de um valor, passando o logaritmando e a sua base como parâmetro, utilizaremos o método: log(logaritmando, base)
exemplo(s) matemáticos: 

                                        log(9, 3) = log de 9 na base 3 = 2, pois 3 * 3 = 9
                                        log(81, 9) = log de 81 na base 9 = 2, pois 9 * 9 = 81
                                        log(64, 8) = log de 64 na base 8 = 2, pois 8 * 8 = 64



8 - Para calcular o logaritmo de um 2 e 10, passando o logaritmando e a sua base como parâmetro, utilizaremos os métodos: log2(x) e log10(x)
exemplo(s) matemáticos:

                                      log2(4) = log de 4 na base 2 = 2, pois 2 * 2 = 4
                                      log2(16) = log de 16 na base 2 = 4, pois 2 * 2 * 2 * 2 = 4
                                      log10(1000) = log de 1000 na base 10 = 3, pois 10 * 10 * 10 = 1000


9 - Para calcularmos também a exponenciação de um valor, utilizaremos o método: pow
exemplo(s) matemáticos:

                                        3 elevado a 3 = = 3 * 3 * 3 = 27


10 - Para calcularmos a raiz quadrada de um valor, utilizaremos o método: sqrt
exemplos(s) matemáticos:

                                         a raiz quadrada de 16 = 4, pois x² = 16, onde x é 4
                                         a raiz quadrada de 25 = 5, pois x² = 25, onde x é 5
                                         a raiz quadrada de 64 = 8, pois x² = 64, onde x é 8


11 - Para calcularmos as relações existentes entre os ângulos e os triângulos, utilizaremos três métodos: cos(cosseno), sin(seno), tan(tangente)
exemplo(s) matemáticos: 
                                        cosseno = cateto adjacente / hipotenusa
                                        seno = cateto oposto / hipotenusa
                                        tangente = cateto oposto / cateto adjacente (sin / cos)


12 - Valores das constantes e e pi que vimos neste estudo sobre a biblioteca math, do Python:

# Share