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 marco.prodata » 23 Mar 2021 15:42

Mestres,
Sobre harbour com SQL, vou usar o postgresql, você usam as libs padrão do sql (hbpgsql, hbmysql pra mysql), ou usam o rddsql do harbour (q é bem difernte do xharbour)?
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 alxsts » 24 Mar 2021 01:41

Olá!

Postgresql é muito bom. Se o teu sistema roda apenas em Windows, sugiro que use ADO. É um produto Microsoft consolidado há anos e disponível na instalação do Harbour, bastando usar hbwin.hbc na linkedicão. Tem muita documentação e exemplos na internet e também aqui no fórum.

Boa sorte e conte com o pessoal do fórum!
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Sobre harbour com SQL

Mensagempor Fernando queiroz » 24 Mar 2021 11:43

alxsts escreveu:Olá!

Postgresql é muito bom. Se o teu sistema roda apenas em Windows, sugiro que use ADO. É um produto Microsoft consolidado há anos e disponível na instalação do Harbour, bastando usar hbwin.hbc na linkedicão. Tem muita documentação e exemplos na internet e também aqui no fórum.

Boa sorte e conte com o pessoal do fórum!


hoje uso exatamente o indicado , mas gostaria de preparar meu APP para rodar em Linux ai qual seria a indicação para o lugar do ADO ??

e como tratar o RECORDSET retornado, pequeno exemplo
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 alxsts » 24 Mar 2021 12:18

Olá!

Meu conhecimento em Linux/Unix é zero... nunca mexi.
No tópico Sistema ERP rodando em LINUX, o Itamar Lins postou um link mostrando como usar ADO com Linux, via WINE. Não sei se alguém testou.
Quanto a exemplo de manipulação de recordset, tem vários exemplos aqui no fórum, postados por mim e pelo Quintas. Procure por Tbrowse ADO.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Sobre harbour com SQL

Mensagempor Itamar M. Lins Jr. » 24 Mar 2021 17:13

Olá!
Recomendo usar "primeiro" no windows via ADO. Pq o grande lance é fazer a migração, usar, quando tudo estiver pronto partir para o LINUX.
O Linux não tem ADO NATIVO. Só vai aproveitar as SQLs mais nada ou usar WINE.
Hoje não uso mais WINDOWS. Só mantenho o Windows por conta do POVO que usa Windows.
Meu desktop é Linux Kubuntu ficarei com ele até enjoar... Depois mudo para outra distro Linux, por enquanto tá legal.
O que reparei foi a velocidade da aplicação via Wine no Linux alias meu CPU só tem 4Gib e não 8, e ficou muito rápido.
Vejo que SQL no Linux é mais para PHP, e essas linguagens mais modernas. Quem sabe no futuro teremos algo mais simples igual temos o ADO no Windows.
https://adodb.org/dokuwiki/doku.php ou no Lazarus que é super simples também.

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 Fernando queiroz » 24 Mar 2021 19:47

Itamar M. Lins Jr. escreveu:Olá!
Recomendo usar "primeiro" no windows via ADO. Pq o grande lance é fazer a migração, usar, quando tudo estiver pronto partir para o LINUX.
O Linux não tem ADO NATIVO. Só vai aproveitar as SQLs mais nada ou usar WINE.
Hoje não uso mais WINDOWS. Só mantenho o Windows por conta do POVO que usa Windows.
Meu desktop é Linux Kubuntu ficarei com ele até enjoar... Depois mudo para outra distro Linux, por enquanto tá legal.
O que reparei foi a velocidade da aplicação via Wine no Linux alias meu CPU só tem 4Gib e não 8, e ficou muito rápido.
Vejo que SQL no Linux é mais para PHP, e essas linguagens mais modernas. Quem sabe no futuro teremos algo mais simples igual temos o ADO no Windows.
https://adodb.org/dokuwiki/doku.php ou no Lazarus que é super simples também.

Saudações,
Itamar M. Lins Jr.


Itamar atualmente uso com ADO no windows mas gostaria de fazer uma versão para rodar no LINUX , qual a opcao para substituir a manipulação do DATASET de ADO para ????? no LINUX

e algum exemplo da connecao e manipulacao em linux

me falaram de SQLMIX mas nao sei nada sobre como usar o DATASET

HOJE USO ASSIM
METHOD MySqlConnection( cServer, cUser, cPassword, nPort ) CLASS CONECCOESCLASS
LOCAL cnConnection

    cnConnection:= win_OleCreateObject( "ADODB.Connection" )
    cnConnection:ConnectionString := iif( win_OsIs10(), "Provider=MSDASQL;", "" )
    cnConnection:ConnectionString += "Driver={MariaDB ODBC 3.1 Driver};"
    cnConnection:ConnectionString += ;
        "Server=" + cServer + ";" + ;
        "Port=" +  nPort  + ";" + ;
        "Stmt=;" + ;
        "User=" + cUser + ";" + ;
        "Password=" + cPassword + ";" + ;
        "Collation=utf8_general_ci;" + ;
        "AUTO_RECONNECT=1;" + ;
        "COMPRESSED_PROTO=1;" + ;
        "PAD_SPACE=1"
    cnConnection:CursorLocation    := 3
    cnConnection:CommandTimeOut    := 600 // seconds
    cnConnection:ConnectionTimeOut := 600 // seconds

RETURN cnConnection


e trato o DATASET assim:
   cQuery := "SELECT PRODUTOS_ID, ";
               + "produtos.DESPRO, ";
               + "IF(produtos.ESTATU < produtos.ESTMIN,'BAIXO','') AS SITUACAO,  ";
               + "produtos.ESTATU, ";
               + "produtos.ESTL02, ";
               + "produtos.CODREF, ";
               + "produtos.PRECUS, ";
               + "produtos.PREVEN, ";
               + "produtos.TIPUNI, ";
               + "produtos.EAN13, ";
               + "produtos.NCM, ";
               + "produtos.CEST, ";
               + "IF(produtos.PROSER ='1','PRODUTO','SERVICO') AS PROSER, ";
               + "produtos.QUEM_BLOQ, ";
               + "(produtos.ESTATU + produtos.ESTL02) AS SOMA ";
               + "FROM produtos ";
               + cAlvo_Consulta
   oQuery := CONECCOESCLASS():ExecuteSQL(::oServer, cQuery)

   if  ! oQuery:Eof()
      
   DO WHILE ! oQuery:Eof()
            aAdd( aResult, {oQuery:Fields( "PRODUTOS_ID" ):Value,;
                        oQuery:Fields( "DESPRO" ):Value,;
                        oQuery:Fields( "TIPUNI" ):Value,;
                        oQuery:Fields( "ESTATU" ):Value,;
                        oQuery:Fields( "ESTL02" ):Value,;
                        oQuery:Fields( "CODREF" ):Value,;
                        oQuery:Fields( "PRECUS" ):Value,;
                        oQuery:Fields( "PREVEN" ):Value,;
                        oQuery:Fields( "EAN13" ):Value,;
                        oQuery:Fields( "NCM" ):Value,;
                        oQuery:Fields( "CEST" ):Value,;
                        oQuery:Fields( "PROSER" ):Value,;
                        oQuery:Fields( "QUEM_BLOQ" ):Value,;
                        oQuery:Fields( "SOMA" ):Value} )

            oQuery:MoveNext()
   ENDDO
      endif
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 Fernando queiroz » 24 Mar 2021 19:50

no caso estava usando o retorno da query e carregando um ARRAY para usar no BROWSE
na realidade substituiria o oQuery:Fields( "DESPRO" ):Value por ????? no LINUX
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 Fernando queiroz » 24 Mar 2021 19:53

outra coisa que ficou na duvida foi como usar o SEFAZCLASS pois ela usa o CAPICOM.DLL e qual seria a solucao para o caso
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. » 24 Mar 2021 21:47

Olá!
A unica forma que usei foi o SQLMIX, APENAS para extrair dados, puxar de vários tipos Mysql/MSSQL/Firebird...
No linux é via ODBC, vc deve estudar como fazer isso quando instalar e testar o seu SGBD no Linux.
Já fiz alguns testes usando o Harbour e deu certo mas faz muito tempo.
Melhor será se alguém que realmente usar Harbour com SGBD no linux para ensinar essa parte.
Meus testes atuais foram com LetoDBf, a questão é tempo para fazer manual passo a passo, melhor seria o interessado fazer isso.
Não é nada complicado, mas precisa ler MANUAIS e CÓDIGOS FONTE de EXEMPLOS que tem vários nas pastas contrib do Harbour.

SEFAZCLASS parece que roda no Linux, teria que estudar isso com o José Quintas.

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 Fernando queiroz » 24 Mar 2021 22:48

Itamar M. Lins Jr. escreveu:Olá!
A unica forma que usei foi o SQLMIX, APENAS para extrair dados, puxar de vários tipos Mysql/MSSQL/Firebird...

Saudações,
Itamar M. Lins Jr.


era exatamente isto que gostaria de saber como você fez , já me daria um norte por onde começar
como tratar os resultado das suas query , usando SQLMIX
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 Fernando queiroz » 24 Mar 2021 23:43

Dando umas pesquisadas pelo forum encontrei isso:

No SQLODBC
SQLDriverConnect( hDbc, cConnStr, @cConstrout )
SQLExecDirect( hStmt, "SELECT * FROM test" )

oQuery:FieldByName( "PRODUTOS_ID" ):Value


No ADO
    cnConnection:= win_OleCreateObject( "ADODB.Connection" )
    cnConnection:ConnectionString := iif( win_OsIs10(), "Provider=MSDASQL;", "" )
    cnConnection:ConnectionString += "Driver={MariaDB ODBC 3.1 Driver};"
    cnConnection:ConnectionString += ;
        "Server=" + cServer + ";" + ;
        "Port=" +  nPort  + ";" + ;
        "Stmt=;" + ;
        "User=" + cUser + ";" + ;
        "Password=" + cPassword + ";" + ;
        "Collation=utf8_general_ci;" + ;
        "AUTO_RECONNECT=1;" + ;
        "COMPRESSED_PROTO=1;" + ;
        "PAD_SPACE=1"
    cnConnection:CursorLocation    := 3
    cnConnection:CommandTimeOut    := 600 // seconds
    cnConnection:ConnectionTimeOut := 600 // seconds

cnConnection:EXECUTE( "SELECT * FROM test" )

oQuery:Fields( "PRODUTOS_ID" ):Value
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 Fernando queiroz » 25 Mar 2021 00:05

resumindo minha situação ,
nao uso DBF, LETO, SQLRDD ou qualquer coisa relacionada para fazer com que se pareça com DBF
uso SQL puro em banco de dados MARIADB
agora o retorno da QUERY é que manipulo com o ADO para pegar os dados
que gostaria de passar para algo que funcione mais genérico tanto em LINUX como no WINDOWS

pode ser via ODBC ou qualquer coisa que não me limite o uso em LINUX ou WINDOWS

O que hoje tenho em ADO
cnConnection:EXECUTE( "select PRODUTOS_ID from produtos where ... )
oQuery:Fields( "PRODUTOS_ID" ):Value
oQuery:MoveNext()
MoveFirst, MoveLast, MoveNext, and MovePrevious

Passaria para ODBC assim
cnConnection:SetSQL( "select PRODUTOS_ID from produtos where ... )
cnConnection:Open()
oQuery:FieldByName( "PRODUTOS_ID" ):Value
oQuery:Skip()
oQuery:GoTo( 1 )
oQuery:Prior()
oQuery:First()
oQuery:Last()

OBS: Hoje uso o ODBC para o MARIADB
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. » 25 Mar 2021 10:01

Olá!
Faltou vc achar exemplos de SQLMIX, aqui no forum tem e na pasta contrib tem exemplos.
Ou usar a LIB para MySQL do Harbour que funciona no linux também
Neste caso é tudo array tem exemplo disso na pasta contrib tambem.

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 Fernando queiroz » 25 Mar 2021 18:08

Itamar M. Lins Jr. escreveu:Olá!
Faltou vc achar exemplos de SQLMIX, aqui no forum tem e na pasta contrib tem exemplos.
Ou usar a LIB para MySQL do Harbour que funciona no linux também
Neste caso é tudo array tem exemplo disso na pasta contrib tambem.

Saudações,
Itamar M. Lins Jr.


olha procurei no CONTRIB mas não achei ou não sei o nome
encontrei
HBFBIRD
HBMYSQL
HBODBC
HBPGSQL
HBSQLIT3

mas o tal de SQLMIX não encontrei
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 Fernando queiroz » 25 Mar 2021 18:15

verificando aqui o que tenho e a melhor opção para mudar seria a ODBC pela semelhança de comando, quase não mudaria nada no que tenho atualmente.

e como é padrao para todos os DB , ficaria funcional para todos
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

Próximo



Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 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