Lazarus SQLite SQLite
Introdução Lazarus com SQLite

SQLite

Definições

O SQLite é um banco de dados, simplificado ao máximo.

Ele não exige SGDB (Sistema Gerenciador de Banco de dados), pois tudo fica armazenado em uma unica lib. Que gerência o DB (Data Base) e suas tabelas.

Para quem é destinado o SQLite

O SQLite é destinado a aplicações que precisam armazenar um volume grande de informações, sem grande concorrencia. Permitindo uso de comandos SQL tradicionais de SGBD, sem a necessidade de instalação de complexos sistemas, pois tudo fica em um unico arquivo, e uma lib (biblioteca).

De forma geral, quando existe uma aplicação que armazena dados temporários, ou de integração, sem concorrencia de várias aplicações. O SQLite é o banco de dados ideal para esta atividade.

Como Baixar o SQLite

O SQLite pode ser baixado através do site:

https://www.sqlite.org/download.html

De fato existem binários prontos para plataformas Windows, Linux, Mac e Android.

Bastando baixar seus respectivos binários e incorporar no instalador do seu pacote.

SQLite Studio

O SQLite Studio é uma ferramenta Open Source – Freeware, destinada ao desenvolvimento de bases de dados.

Pode ser baixada livremente no site:

https://sqlitestudio.pl/

Permitindo instalar em MAC, Linux e Windows.

SQLite Studio

Lendo SQLite na console

Caso não goste de aplicações e queira acessar diretamente através de linha de comando. Isso tambem é possível.

Basta instalar os binários do SQLite, e rodar da seguinte forma:

Pasta do projeto Etiqueta

No meu projeto Etiquetas, existe uma pasta sqlite, lá uma sub pasta scripts.

Contendo os scripts do banco e tambem o sqlite3.exe.

Entre na pasta scripts, e por linha de comando dê o seguinte comando:

chamando o banco de etiqueta.db

Após a execução surgirá um prompt semelhante ao mysql ou ao plsql.

Engine de execução de sql do sqlite

Ao dar um comando de select, percebemos o retorno, conforme apresentado.

Comando select executado.

Rodando scripts

Para executar um script externo é muito simples:

.read [script.sql]

Comando para executar o scritp
Executando um script.

Lazarus

Introdução

O Lazarus é uma ferramenta de desenvolvimento de aplicação Desktop, multi plataforma, usa linguagem PASCAL Objects, para desenvolvimento de aplicações complexas. Tem uma IDE de desenvolvimento otimizada similar ao Delphi.

Não irei entrar nos detalhes do Lazarus, pois fugiriamos da proposta deste artigo.

Zeoslib

Zeos lib é um pacote de componentes visuais e não visuais, multi plataforma, e multi banco. Sua finalidade é realizar a integração com bancos de dados, entre eles o SQLite.

Não entrarei nos detalhes de instalação do Zeoslib, pois fuguriamos da proposta deste artigo.

Usando Lazarus com SQLite

A primeira coisa que precisamos criar é um datamodulo, para agrupar nossos componentes de banco de dados.

Datamodule
Teste de conexão

Usarei o projeto Etiqueta, que estou criando. Pois contem referências no git e podem ser vistos posteriormente.

Em seguida, criarei um componente TZConnection, onde apresentarei as seguintes propriedades:

  • Database – O caminho absoluto do arquivo etiqueta.db
  • LibraryLocation – O caminho absoluto do arquivo sqlite3.dll
  • Protocol – sqlite-3

Faça um teste de conexão, ativando o Connected (true), caso não retorne mensagem de erro.

Voce conseguiu conectar no banco de dados.

O proximo passo é criar um componente TZTable

, e vincular ele ao TZConnection através da propriedade Connection.

Em seguida, na propriedade TableName, selecionamos a tabela product, que iremos gerenciar.

Para não fugir muito do tema, os detalhes adicionais, deixarei disponível no GIT.

GIT do projeto Etiquetas

https://github.com/marcelomaurin/Etiquetas

Conclusão

O SQLite é uma poderosa ferramenta para gerenciar dados transitórios, e para criação de aplicações rápidas porem robustas. Tem um conjunto de ferramentas que podem auxiliar o desenvolvedor.

Destinado a aplicações embarcadas ou em desktop o sqlite têm seu nicho de uso, garantindo um precioso espaço na gestão de informações transitórias.

Espero que tenham gostado.

Blog Dicas
Instalando o WordPress em uma VM Linux Oracle

Apesar de ser experiente no wordpress, tive muita dificuldade na instalação do wordpress em uma VM Oracle, por isso resolvi escrever essa receita de bolo para orientar aqueles que estão no mesmo barco.

Instalação dos pacotes básicos

Instalação do Banco de dados

Inicialmente iremos instalar o banco mysql.

yum install mysql-server mysql-client

Instalação dos pacotes de banco

Instalação do Apache

Agora iremos instalar o apache.

yum install httpd php-mysqlInd php-fpm php-redis php-zip php-common php-gd php-json php-xml php-mcrypt php-pecl-redis

Instalação dos pacotes apache

Criando regra do firewall

Agora criaremos a regra do firewall.

sudo firewall-cmd –zone=public -add-port=80/tcp –permanent

sudo firewall-cmd –reload

Criando regras do firewall

Ativando os serviços

Agora iremos ativar os serviços de httpd (apache).

sudo systemctl start httpd

sudo systemctl start mysqld

sudo systemctl enable httpd

sudo systemctl enable mysqld

Ativando os serviços do apache e do banco.

Pulo do gato

O oracle cria seus pacotes com autenticação sh256, isso exige um tipo especial de autenticação.

Para instalar o wordpress, precisei quebrar o tipo de autenticação do oracle, para acessar o mysql de forma tradicional.

Para voce acessar o mysql, na forma tradicional, ou seja, usando o comando:

mysql -u root -p

Acesso ao mysql na forma tradicional

É necessário realizar alguns passos extras.

Desbloqueio do Mysql

Primeiro passo mate o serviço do mysql, através do comando:

systemctl stop mysqld

Parando o serviço do mysql-server

Inicie o mysql no modo seguro, tirando as regras de segurança.

mysqld_safe –skip-grant-tables &

Entra no mysql sem as tabelas de segurança

Agora entre no mysql

mysql -u root -p

Acessando o banco local

Conecte na base mysql.

use mysql

Conectando no mysql

Agora finalmente iremos mudar o acesso.

Digite os seguintes updates:

update user set plugin = “mysql_native_password” where user = ‘root’;

update user set plugin = “mysql_native_password” where user = ‘mysql.infoschema’;

Correção das permissões de usuario.

Pronto saia do mysql , usando o comando \q.

Digite o comando:

killall mysqld

Para parar o mysql-server

Agora suba o mysql, através do serviço normal.

systemctl start mysqld

Subindo o serviço do mysql

Criando a base do wordpress

Agora iremos criar a base de dados que iremos utilizar no mysql.

Entre no mysql, através do seguinte comando:

mysql -u root -p

Entrando no mysql, já com permissões normais.

Agora crie sua base de dados:

create database [suabasewp];

criando a base de dados que irá usar.

Instalando o wordpress

Estamos agora na fase final do processo de instalação, para isso, entre no site wordpress.org, e baixe a ultima versão do wordpress.

Copie os arquivos do wordpress para a pasta /var/www/html/, usando um aplicativo de sua preferência.

Agora rode o wordpress, o mesmo irá te orientar na fase final de instalação.

A parte mais complicada do processo é a quebra ou mudança da forma de permissão do mysql. Após isso o resto é tradicional da instalação do wordpress.

Sem categoria
Implementação 10/03/2022

Hoje quase finalizei as modificações necessárias para a versão 2.0 do FILA.

Como podemos ver no vídeo a seguir, o protocolo já emite cupom no protocolo ESC POS.

Implementação de cupom no protocolo esc pos – ELGIN i9

Foram realizadas as seguintes correções nos fontes.

Sobrecarga de método TextoSerial, conforme descrição abaixo:

procedure TextoSerial(info : string);
procedure TextoSerial(info : string; Formatacao : CFormat);
procedure TextoSerial(info : string; Formatacao : CFormat; typetext : CTypeText);    

A função TextoSerial, tem por objetivo imprimir o cupom, neste sentido ela pode ser formatada, conforme sua formatação, ou tipo de texto.

Foram tambem criados a função EjetarCUPOM que tem por objetivo, posicionar o cupom no final do texto para destaque.

Tambem foi criado o FormatacaoString, que prepara o texto, quebrando em partes que caibam no cupom.

CUPOM.PAS

Esta tela emula o cupom real, servindo de base de visualização para eventual analise de desenvolvimento.

O cupom aparece ao clicar no texto inferior da tela.

Não sendo algo usual para o usuário final.

tela do cupom do usuário

Fila
Mudanças de 09/03/2022

Hoje dei mais um passo para implementação da Impressão Serial da Elgin i9.

Melhorias de tela

Foram adicionados os campos Modelo, contendo inicialmente Elgini9 e Porta serial.

Na tela menu (TMenu), foram adicionados os métodos de impressão ImprimeDriver, ImprimeSerial, que tratam do controle de impressão da impressora em modo Driver Windows e Serial/ESCPOS.

Tambem, foi iniciado a formatação do ticket no modo serial.

Outros métodos criados

Foi Criado método DefaultSerial, para parametrização serial e tambem TextoSerial e LineSerial.

Fila
Correções e Melhorias – 08/03/2022

Inclusão de campos de gravação de CONTEXTO (Classe TSetmain) para formulario Main.

Melhoria na interface da tela main (Configuração).

Tela de configuração da tela principal

Foram agregados uma imagem (icone visual) e um texto explicativo.

Novos parâmetros

Inclusão do campo Tipo Impressora, permitindo a parametrização dos seguintes tipos:

  • Impressora por Driver
  • Impressora Serial
  • Impressora Bluetooth

O Campo Iniciar ao Entrar foi adicionado, bem como sua funcionalidades

Estas modificações serão lançadas na versão 2.0 do projeto FILA.

Fila
Novas Features

Português

O projeto FILA, esta passando por uma reformulação, onde na próxima versão, terá as seguintes features adicionadas:

  • Ganhará compatibilidade com protocolo ESC POS para Elgin i9
  • Log de chamadas externas
  • Gravação de Contexto
  • Compatibilidade Windows/Linux/ARM Linux para o Fila

Como as modificações são arduas, a nova versão será 2.0.

Aguarde em breve a versão. Estaremos adiantando as novas features nos próximos posts.

English

The FILA project is undergoing a reformulation, where in the next version, it will have the following features added:

  • The project Fila will gain ESC POS protocol compatibility for Elgin i9
  • External Call Log
  • Context Recording
  • Windows/Linux/ Compatibility ARM Linux for Fila

As the modifications are arduous, the new version will be 2.0.

Wait for the release soon. We will be advancing the new features in the next posts.

Spanish

El proyecto FILA se encuentra en proceso de reformulación, donde en la próxima versión se le agregarán las siguientes funcionalidades:

  • El proyecto obtendrá compatibilidad con el protocolo ESC POS para Elgin i9
  • Registro de llamadas externo
  • Grabación de contexto
  • Windows/Linux/ Compatibilidad ARM Linux para Fila

Como las modificaciones son arduas, la nueva versión será la 2.0.

Espera el lanzamiento pronto. Estaremos avanzando en las nuevas funciones en las próximas publicaciones.

Deutsche

Das FILA-Projekt wird einer Neuformulierung unterzogen, wobei in der nächsten Version die folgenden Funktionen hinzugefügt werden:

  • Project erhält ESC POS-Protokollkompatibilität für Elgin i9
  • Externes Anrufprotokoll
  • Kontextaufzeichnung
  • Windows/Linux/Kompatibilität ARM Linux für Fila

Da die Änderungen mühsam sind, wird die neue Version 2.0 sein.

Warten Sie auf die baldige Veröffentlichung. Wir werden die neuen Funktionen in den nächsten Posts vorantreiben.

Fila
Dashboard Integration

Portuguese Version – >English Version< – Spanish Version – French Version – Deutsch Version

Integration API

The Panel is an application that runs on android, and allows you to call users.

It uses a smart tv, or tv box connected to a tv.

However, using the correct protocol, any application can simulate the responses, performing the same function as the TV BOX.

The purpose of this document is to detail the protocol allowing customizations.

Panel Protocol

The Dashboard can be integrated through a simple API.

In this tutorial, we will describe how to perform the integration in the PANEL.

The PANEL always looks for a connection on the server through port 8096.

The PANEL, requests update every 300ms, repeating the request constantly.

The Dashboard is a client connection, which always sends a command to the server.

The Server is always the machine located at IP 192.168.0.114 of the local network, in versions greater than 1.2, it is possible to change the ip of the server, by clicking on the clock.

Therefore, the server needs to be fixed through a FIXED IP, in your DHCP network.

This server, in turn, can respond with commands that will be interpreted by it.

SERVER-RESPONDED-COMMANDS

GUICHE

This command calls a given number from a specific group.

Available from version 1.0 on

Syntax:

GUICHE>[nro guiche]:[password];

Command Syntax

The NRO GUICHE – It is the number of the attendant or window.

PASSWORD – It is the password that will be called.

GROUP

This command performs the modification of the label of the indicated group.

Planned as of version 1.3

Syntax:

GROUP>[nro group]:[text];

Command Syntax

GROUP NRO- It is the number of the Group that will appear in the terminal

Text- It is the label that will be displayed in the terminal.

MSG

This command performs the modification of the message label.

Available from version 1.2 onwards

    Fila
    Fila Internacional

    Portuguese

    Estamos desenvolvendo uma versão multi idiomas do FILA, para atender não só brasileiros, mas estrangeiros.

    A versão multi-idiomas atenderá inicialmente, Português, Inglês, Espanhol e Frances e Alemão.

    Daqui para frente, todos os posts e publicações do FILA serão nestes 4 Idiomas.

    Justamente permitindo alcançar um maior número de pessoas.

    English

    We are developing a multi-language version of FILA, to serve not only Brazilians, but also foreigners.

    The multi-language version will initially serve Portuguese, English, Spanish and French and German.

    From now on, all FILA posts and publications will be in these 4 languages.

    Just allowing to reach a greater number of people.

    Spanish

    Estamos desarrollando una versión multilingüe de FILA, para atender no solo a los brasileños, sino también a los extranjeros.

    La versión multilingüe inicialmente admitirá portugués, inglés, español y francés y alemán.

    A partir de ahora, todos los posts y publicaciones de FILA estarán en estos 4 idiomas.

    Simplemente permitiendo llegar a un mayor número de personas.

    French

    Nous développons une version multilingue de FILA, pour servir non seulement les Brésiliens, mais aussi les étrangers.

    La version multilingue prendra initialement en charge le portugais, l’anglais, l’espagnol, le français et l’allemand.

    Désormais, tous les posts et publications de la FILA seront dans ces 4 langues.

    Permettant juste de toucher un plus grand nombre de personnes.

    Deutsch

    Wir entwickeln eine mehrsprachige Version von FILA, um nicht nur Brasilianern, sondern auch Ausländern zu dienen.

    Die mehrsprachige Version wird zunächst Portugiesisch, Englisch, Spanisch sowie Französisch und Deutsch unterstützen.

    Ab sofort werden alle FILA-Beiträge und -Veröffentlichungen in diesen 4 Sprachen erscheinen.

    Nur um eine größere Anzahl von Menschen zu erreichen.

    en_USEnglish