Sobre harbour com SQL

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Sobre harbour com SQL

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

Sobre harbour com SQL

Mensagem 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?
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Sobre harbour com SQL

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

Sobre harbour com SQL

Mensagem por marco.prodata »

A parte de insert, update dá pra fazer também por comandos no sqlmix?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sobre harbour com SQL

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Sobre harbour com SQL

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

Sobre harbour com SQL

Mensagem 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)?
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Sobre harbour com SQL

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sobre harbour com SQL

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

Sobre harbour com SQL

Mensagem 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.
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Sobre harbour com SQL

Mensagem 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
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Sobre harbour com SQL

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Responder