Página 2 de 2

Sobre harbour com SQL

Enviado: 25 Mar 2021 19:53
por Itamar M. Lins Jr.
Olá!
Estou vendo aqui...(revendo)
Linux

Código: Selecionar todos

$ sudo apt install unixodbc unixodbc-dev odbcinst
$ sudo apt install git checkinstall cmake build-essential libssl1.0-dev 
Confesso que para mim é um emaranhado, pois quando estavam fazendo eu não acompanhei. E é um terreno que não uso com frequência.
Precisa compilar a librddsql.a primeiro.

Código: Selecionar todos

itamar@itamar-desktop:~/dev/hb32/contrib/rddsql$ hbmk2 rddsql.hbp 
hbmk2: Compilando...
hbmk2: Criando biblioteca estáticas... librddsql.a

Código: Selecionar todos

itamar@itamar-desktop:~/dev/hb32/contrib/sddodbc$ hbmk2 sddodbc.hbp 
hbmk2: Dependência 'odbc' encontrado: /usr/include
hbmk2: Compilando...
../../../core.c:47:10: fatal error: hbrddsql.h: Arquivo ou diretório inexistente
   47 | #include "hbrddsql.h"
      |          ^~~~~~~~~~~~
compilation terminated.
hbmk2[sddodbc]: Erro: Executando compilador C/C++. 1
gcc -c -O3  -DHBMK_HAS_ODBC -W -Wall -pipe -I/usr/local/include/harbour -I/usr/local/share/harbour/contrib/rddsql -I/usr/include ../../../core.c
itamar@itamar-desktop:~/dev/hb32/contrib/sddodbc$ cp ../rddsql/hbrddsql.h .
itamar@itamar-desktop:~/dev/hb32/contrib/sddodbc$ hbmk2 sddodbc.hbp 
hbmk2: Dependência 'odbc' encontrado: /usr/include
hbmk2: Compilando...
hbmk2: Criando biblioteca estáticas... libsddodbc.a
O Harbour 3.4 do Viktor está corrigido essa parte de usar SQL no linux.
Por exemplo o arquivo /contrib/sddodbc/tests/test2.prg do harbour 3.2 está com BUG, pois não chama a "include dbinfo.ch"

Código: Selecionar todos

Error BASE/1003  Variable does not exist: RDDI_CONNECT                                                                                                                 
Called from MAIN(15) 
Se verificar esse mesmo arquivo no harbour 3.4, vai ver que foi corrigido.
Fiz a correção e agora apareceu isso:

Código: Selecionar todos

Unable connect to server          0 01000 [unixODBC][Driver Manager]Can't open lib 'MySQL ODBC 5.1 Driver' : file not found
Quer dizer que não está instalado o drive odbc do Mysql 5.1, mas já vi que está funcionando, vou usar MariaDB para ver se funciona.
Vou instalar o MariaDB,, usando esse tutorial:
https://www.digitalocean.com/community/ ... u-20-04-pt

Código: Selecionar todos

itamar@itamar-desktop:~/dev/hb32/contrib/sddodbc/tests$ sudo apt install mariadb-server
Lendo listas de pacotes... Pronto
Construindo árvore de dependências... Pronto
Lendo informação de estado... Pronto        
The following additional packages will be installed:
  galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-template-perl
  libmariadb3 libterm-readkey-perl mariadb-client-10.5 mariadb-client-core-10.5 mariadb-common mariadb-server-10.5 mariadb-server-core-10.5
Pacotes sugeridos:
  gawk-doc libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl mailx mariadb-test
Os NOVOS pacotes a seguir serão instalados:
  galera-4 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-template-perl
  libmariadb3 libterm-readkey-perl mariadb-client-10.5 mariadb-client-core-10.5 mariadb-common mariadb-server mariadb-server-10.5 mariadb-server-core-10.5
0 pacotes atualizados, 19 pacotes novos instalados, 0 a serem removidos e 2 não atualizados.
É preciso baixar 15,7 MB de arquivos.
Depois desta operação, 153 MB adicionais de espaço em disco serão usados.
Você quer continuar? [S/n] 

Código: Selecionar todos

itamar@itamar-desktop:~/dev/hb32/contrib/sddodbc/tests$ mysqladmin -u itamar -p version
Enter password: 
mysqladmin  Ver 9.1 Distrib 10.5.9-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version          10.5.9-MariaDB-1
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /run/mysqld/mysqld.sock
Uptime:                 7 min 5 sec

Threads: 1  Questions: 476  Slow queries: 0  Opens: 171  Open tables: 28  Queries per second avg: 1.120
Baixando ODBC para o MariaDB escolher ODBC Connector version 3.1.12 -GA e OS 20.10 Groovy
https://mariadb.com/downloads/#connectors

Deixando aqui para consulta caso esquecer.
O problema é que depois disso tudo o Harbour 3.2 não contempla o MariaDB mais novo.
Tô vendo aqui o que é. Tá procurando o MySQL que não existe mais.

Saudações,
Itamar M. Lins Jr.

Sobre harbour com SQL

Enviado: 26 Mar 2021 07:25
por marco.prodata
Depois de ver todas as mensagens, acho q vou de hbpgsql puro mesmo, porque é um projeto que hoje já está nesse banco e não pretendo migrar de bd, hoje utilizo o sqlrdd do xhb.com, mas vou sair dele porque é caro e parece que já está meio abandonado. Não tenho dificuldade com comandos SQL pois programo também em outras linguagens onde se usa apenas os comandos SQL direto do BD, então essa parte não vai ser a dificuldade, a dúvida maior mesmo era se a galera aqui usava essas ferramentas como o SQLMIX.
O SQLMIX serve apenas pra navegação?

Sobre harbour com SQL

Enviado: 26 Mar 2021 08:35
por Itamar M. Lins Jr.
Olá!
O SQLMIX serve apenas pra navegação?
Não ele faz tudo via comandos SQL, apenas a movimentação no retorno das querys vem em ARRAY DBF.(DBF na memória)

Saudações,
Itamar M. Lins Jr.

Sobre harbour com SQL

Enviado: 26 Mar 2021 09:19
por marco.prodata
A parte de insert, update dá pra fazer também por comandos no sqlmix?

Sobre harbour com SQL

Enviado: 26 Mar 2021 09:41
por JoséQuintas
marco.prodata escreveu:A parte de insert, update dá pra fazer também por comandos no sqlmix?
Pelo que postaram aqui, o SQLMIX também trabalha como conexão, usando comandos SQL.

Comandos INSERT, DELETE, UPDATE, etc. não retornam informação, então trata-se apenas de enviar o comando.

Já os comandos SELECT tem retorno, e o formato desse retorno depende do que estiver usando pra conexão.

De um modo geral, é escolher como vai querer tratar o retorno dos SELECTs, se igual DBF, se igual Microsoft, etc., e isso depende do que usar: ADO, SQLMIX, etc.

Sobre harbour com SQL

Enviado: 26 Mar 2021 09:58
por Itamar M. Lins Jr.
Olá!
A parte de insert, update dá pra fazer também por comandos no sqlmix?
Só funciona assim.
O resultado (RESULT SET) que vem em forma de DBF para facilitar.
Não tem como adicionar/modificar usando APPEND, REPLACE etc..
Só via "update...,insert into... etc)

Saudações,
Itamar M. Lins Jr.

Sobre harbour com SQL

Enviado: 26 Mar 2021 10:36
por marco.prodata
Itamar M. Lins Jr. escreveu:Olá!
O resultado (RESULT SET) que vem em forma de DBF para facilitar.
Não tem como adicionar/modificar usando APPEND, REPLACE etc..
Só via "update...,insert into... etc)
Então os comandos de manipulação das tabelas uso, vou usar os comandos da hbpgsql (no meu caso vou direto com essa lib), e pra facilitar a visualização poderia usar a sqlmix, pra dbedits e relatórios se quiser usar "modo dbf" (do while com skip)?

Sobre harbour com SQL

Enviado: 26 Mar 2021 11:03
por Itamar M. Lins Jr.
Olá!
Então os comandos de manipulação das tabelas uso, vou usar os comandos da hbpgsql (no meu caso vou direto com essa lib), e pra facilitar a visualização poderia usar a sqlmix, pra dbedits e relatórios se quiser usar "modo dbf" (do while com skip)?
Não.
Ou vc usa hbpgsql ou usa SQLMIX os dois juntos não tem como.
Tem pessoas usando hbpgsql com sucesso. Li o relato aqui no forum mesmo.
Já com SQLMIX só vi pessoas que usaram no Windows, embora funcione no Linux, como meu Linux é novo, ficou tudo defasado e estou esperando uma correção do pessoal do MariaDB pois o drive ODBC para Ubuntu 20.10 está com BUG.

Saudações,
Itamar M. Lins Jr.

Sobre harbour com SQL

Enviado: 26 Mar 2021 11:44
por JoséQuintas
Só pra lembrar:

No caso de MySQL, o servidor pode ser Linux ou Windows.
Não está preso a usar servidor e estações com o mesmo sistema operacional.
É que não sei qual vai ser seu ambiente de trabalho, então convém lembrar disso.

SQLMIX é um "centralizador" de todas as opções do Harbour.
O uso é estilo DBF, mas o trabalho "por trás das câmeras" depende de como configurou o SQLMIX.

Já o ADO, é um "centralizador" DO WINDOWS, o Harbour acessa o ADO, e o Windows que se vire com a base de dados.
Mas sem Windows.... só o Linux com Wine pra rodar aplicativos Windows, o que pode ter limitações ou não, não sei dizer.

Qualquer que seja a opção, a fase inicial de se acostumar com o novo estilo de acesso a dados é a mais importante.
NÃO é pra ficar abrindo arquivos, é pra enviar o comando e trazer tudo pronto.
Mesmo que no uso pareça DBF, isso é bem diferente do uso normal de DBF.
E é justamente nisso que vai ganhar muita velocidade, por isso é bom gastar tempo durante esse aprendizado, não importa qual seja a escolha de conector.

Sobre harbour com SQL

Enviado: 26 Mar 2021 12:27
por marco.prodata
Beleza, grato pelas respostas, vou focar apenas no hbpgsql mesmo então, meu ambiente de desenvolvimento é windows, mas no cliente será linux, vai rodar via ssh em nuvem.

Sobre harbour com SQL

Enviado: 26 Mar 2021 14:11
por Fernando queiroz
bom, como ja postei antes, quem hoje já funciona com ADO o mais simples para rodar o APP em windows e linux seria ODBC pela
similaridade dos comando, pouca coisa mudaria

Sobre harbour com SQL

Enviado: 30 Mar 2021 22:47
por Itamar M. Lins Jr.
Olá!
Consegui fazer roda o SQLMIX com Kubuntu(ubuntu) 20.21.
É um erro do drive(não sei?), troquei no PRG localhost mudei para 127.0.0.1 dai rodou blz.

Código: Selecionar todos

itamar@itamar-desktop:~/dev/hb34/contrib/sddodbc/tests$ ./test2 
   
         1                                                                                                                                                             
.T.       
.T.
.T.
.T.
LASTREC:          1
         1 {"LTU", "Lithuania", 3369600}
         2 {"USA", "United States of America", 305397000}
         3 {"POR", "Portugal", 10617600}                 
         4 {"POL", "Poland", 38115967}  
         5 {"AUS", "Australia", 21446187}
         6 {"FRA", "France", 64473140}   
         7 {"RUS", "Russia", 141900000}
LASTREC:          7                    
Saudações,
Itamar M. Lins Jr.