Postagens

SQL básico no Firebird: comandos essenciais para começar

 Consultar, inserir, atualizar e excluir dados faz parte da rotina de quem desenvolve aplicações. Neste post, vamos praticar esses comandos no Firebird usando uma tabela simples de clientes. 1. Criando uma tabela O comando CREATE TABLE define a estrutura que vai armazenar os dados: CREATE TABLE CLIENTES ( ID INTEGER NOT NULL PRIMARY KEY, NOME VARCHAR(100) NOT NULL, EMAIL VARCHAR(150), CIDADE VARCHAR(80) ); A coluna ID identifica cada cliente. Neste exemplo, você informa seu valor ao inserir um registro. 2. Inserindo dados com INSERT Use INSERT INTO para cadastrar um cliente: INSERT INTO CLIENTES (ID, NOME, EMAIL, CIDADE) VALUES (1, 'Ana Silva', 'ana@example.com', 'Curitiba'); INSERT INTO CLIENTES (ID, NOME, EMAIL, CIDADE) VALUES (2, 'Bruno Souza', 'bruno@example.com', 'Recife'); INSERT INTO CLIENTES (ID, NOME, EMAIL, CIDADE) VALUES (3, 'Carla Lima', NULL, 'Curitiba'); Textos ficam entre aspas simples. ...

Transformando um arquivo em um JSON do tipo 64Bits Delphi

Imagem
 Em alguns momentos precisamos transmitir arquivos de uma plataforma para outra.  Uma das formas possíveis é converter um arquivo em base 64, passar a informação via JSON e a estrutura que recebe a informação transformar em arquivo novamente. Segue exemplo abaixo de como fazer no delphi para transformar o arquivo em uma base 64. Utilizaremos as seguintes uses   System.Classes,  System.JSON e  System.NetEncoding;

Consumir API via Delphi de forma nativa

Imagem
Para podermos consumir a API de forma nativa vamos precisar das seguintes uses:   Rest.Client,  REST.Types, Rest.Json; Veja abaixo um exemplo de como consumir a api do google. https://maps.googleapis.com/maps/api/geocode/json?address=ENDERECO&key=MINHA CHAVE DA API. É possível serializar a variável LJSON em uma classe, conforme exemplo do artigo anterior, segue link:  https://dicaprogramador.blogspot.com/2024/11/serializar-e-desserializar-json-em.html

Serializar e desserializar JSON em Delphi de Forma nativa

Imagem
Aqui vamos mostrar como deserializar este JSON em delphi de forma nativa sem uso de componentes.  Veja abaixo um exemplo de JSON. {   "nome": "Produto A",   "preco": 29.99,   "disponivel": true,   "detalhes": [     {       "descricao": "Produto de alta qualidade",       "estoque": 150     },     {       "descricao": "Disponível em várias cores",       "estoque": 75     },     {       "descricao": "Inclui garantia de 2 anos",       "estoque": 200     }   ] } Primeiro vamos precisar criar um classe com os campos que serão recebidos do JSON, perceba que detalhes é uma lista então teremos que criar um array na classe. Nesta classe iremos precisar da uses Rest.Json.Types para poder definir o atributo JSONName, que serve para definir o nome do campo a serializar ou desserializar o JSON. Então nossas classe ficarão a...

Como fazer leitura de Arquivo CSV e XLS em Delphi

Segue abaixo solução encontrada para ler arquivos csv e xls.: procedure TFUIImportacaoPreco. BtnLerArquivoClick(Sender: TObject); var   I, LContarRegistro: Integer;   LColuna,  LArquivoCSV: TStringList;   LArquivoXLS: String;   Excel, Sheet: Variant;   LIndice: Currency; begin   inherited;   if (CeRefFabrica.AsInteger = CePreco.AsInteger) then     raise EValidation.Create('Antes de realizar a leitura fazer as configurações de linha e coluna');   if FECaminhoArquivo.Text = '' then     raise EValidation.Create('Selecione um arquivo');   FPosicaoCabecalho := CeCabecalho.AsInteger;   FPosicaoPreco     := CePreco.AsInteger;   FPosicaoRef       := CeRefFabrica.AsInteger;   if Pos('.CSV', UpperCase(Copy( FECaminhoArquivo.FileName, length(FECaminhoArquivo. FileName) -4, length(FECaminhoArquivo. FileName))))  > 0  then   begin     //Desc...

Remover caracteres inválidos para salvar arquivo no windows

Me deparei com um problema recente onde tive que salvar um arquivo com um nome informado pelo usuário, o problema que este nome pode ter caracteres inválidos, para salvar o arquivo preciso remover os mesmo pois o windows não aceita. Descobri uma função nativa do Delphi que faz isso, segue abaixo como foi desenvolvido a função.:    uses  System.ioUtils, system.strUtils; ////Remove Caracteres restritos do windows para criação de arquivos class function TStringUtils.GetValidPath( const APath: String): String; var   C: Char; begin   Result := '';   for C in APath do     if (not C.IsInArray(TPath. GetInvalidFileNameChars)) then       Result := Result + C; end;

Arredondamento de valores Formato ABNT

Regras de arredondamento na Numeração Decimal - Norma ABNT NBR 5891 Dezembro de 1977. Mais informações: O algarismo a ser conservado no sistema ISS.Net é o segundo após a vírgula. Serão considerados as 6 casas após a vírgula para os cálculos. 2. Regras 2.1  Quando o algarismo a ser conservado for seguido de algarismo inferior a 5, permanece o algarismo a ser conservado e retiram-se os posteriores. Ex.: 86,06 * 5% = 4,303 fica 4,30, visto que o 3 é inferior a 5. 2.2  Quando o algarismo a ser conservado for seguido de algarismo superior a 5, ou igual a 5 seguido de no mínimo um algarismo diferente de zero, soma-se uma unidade ao algarismo a ser conservado e retiram-se os posteriores. Ex.1: 309,75 * 5% = 15,4875 fica 15,49, visto que o 7 é superior a 5. Ex.2: 602,27* 2% = 12,0454 fica 12,05, visto que os algarismos seguintes ao 5 são diferentes de zero. 2.3  Quando o algarismo a ser conservado for ímpar, seguido de 5 e posteriormente de zeros, soma-se uma un...