Sobre harbour com SQL
Moderador: Moderadores
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Sobre harbour com SQL
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)?
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)?
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Sobre harbour com SQL
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!
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)
Alexandre Santos (AlxSts)
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
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 ??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!
e como tratar o RECORDSET retornado, pequeno exemplo
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Sobre harbour com SQL
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.
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)
Alexandre Santos (AlxSts)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Sobre harbour com SQL
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.
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
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 paraItamar 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.
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
Código: Selecionar todos
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 cnConnectionCódigo: Selecionar todos
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
endifHARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
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
na realidade substituiria o oQuery:Fields( "DESPRO" ):Value por
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
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
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Sobre harbour com SQL
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.
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
era exatamente isto que gostaria de saber como você fez , já me daria um norte por onde começarItamar 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.
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

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
Dando umas pesquisadas pelo forum encontrei isso:
No SQLODBC
No ADO
No SQLODBC
Código: Selecionar todos
SQLDriverConnect( hDbc, cConnStr, @cConstrout )
SQLExecDirect( hStmt, "SELECT * FROM test" )
oQuery:FieldByName( "PRODUTOS_ID" ):Value
Código: Selecionar todos
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

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
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
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
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Sobre harbour com SQL
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.
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
olha procurei no CONTRIB mas não achei ou não sei o nomeItamar 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.
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

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Sobre harbour com SQL
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
e como é padrao para todos os DB , ficaria funcional para todos
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart