Clipper On Line • Ver Tópico - Sobre harbour com SQL

Sobre harbour com SQL

Discussão sobre SQL

Moderador: Moderadores

 

Sobre harbour com SQL

Mensagempor Itamar M. Lins Jr. » 25 Mar 2021 19:53

Olá!
Estou vendo aqui...(revendo)
Linux
$ 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.
itamar@itamar-desktop:~/dev/hb32/contrib/rddsql$ hbmk2 rddsql.hbp 
hbmk2: Compilando...
hbmk2: Criando biblioteca estáticas... librddsql.a

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"
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:
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/tutorials/how-to-install-mariadb-on-ubuntu-20-04-pt
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]


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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Sobre harbour com SQL

Mensagempor marco.prodata » 26 Mar 2021 07:25

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?
marco.prodata
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 145
Data de registro: 30 Nov 2018 09:07
Cidade/Estado: Caratinga
Curtiu: 16 vezes
Mens.Curtidas: 11 vezes

Sobre harbour com SQL

Mensagempor Itamar M. Lins Jr. » 26 Mar 2021 08:35

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Sobre harbour com SQL

Mensagempor marco.prodata » 26 Mar 2021 09:19

A parte de insert, update dá pra fazer também por comandos no sqlmix?
marco.prodata
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 145
Data de registro: 30 Nov 2018 09:07
Cidade/Estado: Caratinga
Curtiu: 16 vezes
Mens.Curtidas: 11 vezes

Sobre harbour com SQL

Mensagempor JoséQuintas » 26 Mar 2021 09:41

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Sobre harbour com SQL

Mensagempor Itamar M. Lins Jr. » 26 Mar 2021 09:58

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Sobre harbour com SQL

Mensagempor marco.prodata » 26 Mar 2021 10:36

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)?
marco.prodata
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 145
Data de registro: 30 Nov 2018 09:07
Cidade/Estado: Caratinga
Curtiu: 16 vezes
Mens.Curtidas: 11 vezes

Sobre harbour com SQL

Mensagempor Itamar M. Lins Jr. » 26 Mar 2021 11:03

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Sobre harbour com SQL

Mensagempor JoséQuintas » 26 Mar 2021 11:44

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Sobre harbour com SQL

Mensagempor marco.prodata » 26 Mar 2021 12:27

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.
marco.prodata
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 145
Data de registro: 30 Nov 2018 09:07
Cidade/Estado: Caratinga
Curtiu: 16 vezes
Mens.Curtidas: 11 vezes

Sobre harbour com SQL

Mensagempor Fernando queiroz » 26 Mar 2021 14:11

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
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

Sobre harbour com SQL

Mensagempor Itamar M. Lins Jr. » 30 Mar 2021 22:47

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.
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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Anterior



Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro