Clipper On Line • Ver Tópico - Harbour - SQLMIX x SQLRDD

Harbour - SQLMIX x SQLRDD

Discussão sobre SQL

Moderador: Moderadores

 

Harbour - SQLMIX x SQLRDD

Mensagempor pauloa1 » 25 Fev 2015 15:03

Janio!

Ao mudar de dbf para postgres eu eliminei mais de 80% dos índices.

Só uso em tabelas grandes e em casos de muito uso.

Com banco de dados, usar muitos índices pode dar efeito contrário, pode deixar lento, pois toda vez que adicionar ou alterar um registro, ele precisa atualizar o índice e também deixa o banco maior.

É na prática que você vai descobrir quando é será necessário ter um índice na tabela ou não.

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 189
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 1 vez
Mens.Curtidas: 5 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor janio » 25 Fev 2015 15:50

Itamar,

Fato concreto: No meu sistema com mediator (mysql), mas usando como se dbf fosse, em um cliente o relatorio de VENDAS DO DIA tem mais ou menos 5.000 registros.

Gero esse relatorio da maneira clássica:

Select Venda
DbSetOrder(1)
DbGoTop()
OrdScope( 0, Data )
OrdScope( 1, Data )
DbGoTop()
Do While !Eof()

...
DbSkip()

Enddo

Pergunta1: Quer dizer que a cada DbSkip() eh feito um novo select la no servidor? Num relatorio com 5mil registros, por exemplo, são feitos 5mil selects?

Pergunta2: Com SQLMIX esse select seria feito no servidor apenas uma vez e o DbSkip() será feito apenas na consulta devolvida, e não no servidor?

Ou seja, em vez de 5mil selects eu teria apenas 1 select?? eh isso?

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1817
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 7 vezes
Mens.Curtidas: 59 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 25 Fev 2015 15:51

Com SQLRDD não precisa instalar nada no servidor, além do proprio mysql.

Precisa do Drive ODBC p/ MSSQL, mas p/ Postgres, MySQL não precisa.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 25 Fev 2015 15:55

Fato concreto: No meu sistema com mediator (mysql), mas usando como se dbf fosse, em um cliente o relatorio de VENDAS DO DIA tem mais ou menos 5.000 registros.


Eu não sei.
Eu sei que no SQLMIX isso é feito na memoria RAM, não é mais requisitado nada no servidor.
Tem que ver o log de requisições ai do servidor para ter certeza.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 25 Fev 2015 18:44

Pergunta2: Com SQLMIX esse select seria feito no servidor apenas uma vez e o DbSkip() será feito apenas na consulta devolvida, e não no servidor?


É isso mesmo. O servidor fica desafogado dessa tarefa.

Se o Mediator aceitar SELECT(comandos SQL), vc pode fazer a mesma coisa.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 25 Fev 2015 20:38

Outra coisa.
Os comandos SQL, são universais, enquanto os comandos p/ manipulação do DBF só com DBF.
Então qualquer comando SQL que vc aprenda a usar, irá servir p/ qualquer linguagem.
"UPDATE ARQUIVOESTOQUE SET QUANTIDADE=QUANTIDADE+1 WHERE PRODUTO=10" 

Podemos usar isso ai em cima p/ JAVA, PHP, C#, qualquer linguagem, agora tem como usar isso ai em baixo no JAVA ?
Select Venda
DbSetOrder(1)
DbGoTop()
OrdScope( 0, Data )
OrdScope( 1, Data )
DbGoTop()
Do While !Eof()


É por causa dessas coisas que digo: Quem usa sintaxe xBase p/ tudo na manipulação de DBF´s dentro dos SGBD´s da vida, continua preso, não se libertou. Não sabe o que esta deixando de ganhar. Não entendeu nada do que é SGBD.(Sistema Gerenciador de Base de dados), e os gurus do Harbour sabem disso, por isso não temos no Harbour alguma coisa similar ao SQLRDD. Para eles a SQLMIX é melhor, ou acesso nativo ou ADO, SQLMIX acessa/trabalha tem um driver para OCI Oracle. Os caras estão lá na frente!

Tem o ADS também p/ DBF que trabalha com TCP/IP é free p/ 5 usuários se não me engano e aceita sintaxe SQL.

E eu cá traz com Letodb, estão fazendo tanta coisa boa no Letodb, está difícil abandonar... meus clientes não tem bases tão grandes assim que justifique usar PostGres por exemplo.

Quem usa Harbour+LINUX com DBF também não sabe o que é corromper indices.
Quem usa Harbour+Windows com DBF e Terminal Service IDEM.
Quem usa Harbour+Letodb+Linux ou Windows IDEM, não sabemos o que é indices corrompidos, nem lentidão de rede.
O Przemek aumentou p/ acima de 4TB com 64Bits os Indices CDX...

Tem muita coisa mais simples de usar com DBF´s e que podemos ganhar tempo p/ mudarmos completamente para bancos relacionais e usar todos os recursos destas ferramentas.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor sasquast » 31 Jul 2019 17:02

Muito obrigado a todos por tudo.

Estive estudando e acabei caindo nesse tópico na discussão entre SQLMIX x SQLRDD. Ao que me pareceu o SQLMIX seria, de forma básica e muito resumida, para o interessado em utilizar comandos SQL, ou seja, evoluir sua aplicação alterando seus fontes. Já o SQLRDD seria mais para quem quer manter seu fonte o mais inalterado possível, inclusive com os comandos de acesso a base DBF, mas que o SQLRDD faria essa ponte para o SQL. Estou correto ?

Outra dúvida é a seguinte, se falou em TOTVS, TOPConnect, DBAccess ... É possível, apenas para um teste, conectar uma aplicação xHarbour cujo fonte está totalmente voltado para DBF ao DBAccess e acessar um banco SQL, ou seja, como se falou que o SQLRDD é quase um clone do DBAccess da TOTVS , seria possível utilizar:

xHarbour + SQL através do DBAccess em vez do SQLRDD ?

Pergunto isso tendo a empresa optado por alterar o mínimo possível os fontes originais.
sasquast
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 6
Data de registro: 31 Jul 2019 16:47
Cidade/Estado: Volta Redonda / RJ
Curtiu: 13 vezes
Mens.Curtidas: 0 vez

Harbour - SQLMIX x SQLRDD

Mensagempor sygecom » 01 Ago 2019 22:49

Não conheço muito de TOTVS, mas até onde sei, apesar de ser um xbase no PROTEUS, ele não compila com xharbour free. Eles tem o próprio compilador deles.
Então deduzo que não roda xHarbour + DBAccess

Acredito que o SQLRDD não é quase um clone do DBAccess da TOTVS, o DBAccess é muito mais parecido com o Mediator, que fica rodando no servidor um interpretador dos comando, para rodar ele em SQL, já o SQLRDD faz isso tudo no lado cliente e muito rápido.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 6637
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 76 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor sasquast » 02 Ago 2019 10:51

Entendi,

É que como não tenho o SQLRDD, e aqui na empresa possuímos o ERP da TOTVS e consequentemente o DBAccess e MSSQL, pensei em fazer um teste para ver se conseguia conectar minha aplicação em Clipper xHarbour (Outro sistema) que hj roda toda em DBF, no SQL utilizando o que tenho em mãos.

O tópico é antigo, hoje em dia, 2019, que ferramenta free, caso exista, você recomenda apenas para esse teste inicial. Dependendo do que conseguirmos aí sim, investiremos em algo mais definitivo.

Muito obrigado.
sasquast
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 6
Data de registro: 31 Jul 2019 16:47
Cidade/Estado: Volta Redonda / RJ
Curtiu: 13 vezes
Mens.Curtidas: 0 vez

Harbour - SQLMIX x SQLRDD

Mensagempor JoséQuintas » 02 Ago 2019 11:42

sasquast escreveu:O tópico é antigo, hoje em dia, 2019, que ferramenta free, caso exista, você recomenda apenas para esse teste inicial.
Dependendo do que conseguirmos aí sim, investiremos em algo mais definitivo.


Sei lá....
É só um teste inicial...
coisinha de nada...
todo o aplicativo funcionando com outra base de dados....
coisa à toa...
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11719
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 747 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor JoséQuintas » 02 Ago 2019 13:22

sasquast escreveu:pensei em fazer um teste para ver se conseguia conectar minha aplicação em Clipper xHarbour (Outro sistema) que hj roda toda em DBF, no SQL utilizando o que tenho em mãos.


Por acaso avaliou que vai ter que mexer em todos IF ! File( "arquivo.cdx" ) por exemplo?
Com certeza não existe LIB mágica, querendo ou não, vai ter que colocar a mão na massa, e pode não ser rápido fazer direto no aplicativo.

Pode até já ir mexendo nessa parte, que vai ter que ser feita pra qualquer que seja a opção usada depois.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11719
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 747 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 07 Out 2019 08:50

Ola!
Vai depender de como vai conversar com os dados do Protheus. Acessar é fácil, basta a senha via ADO vc consegue ou até pelo SQLMIX.
Se está configurado para ter compatibilidade com DBF vc precisa prestar atenção nos campos extras que tem nas tabelas do MSSQL que emula os locks,delete do DBF. Se for só para ler é rápido, não precisa verificar os locks das tabelas.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Fernando queiroz » 07 Out 2019 12:28

Bom, to querendo começar a migrar ou não para um SGDB , pergunta:
Qual a opção menos traumática em termos de mudanças

Andei olhando vaias opções

LETODBF
MYSQL
ACCESS
MARIADB

Qual seria a Indicação dos nobres colegas que já usam um SGBD
Os objetivos seriam:

SEGURANCA
PODER GRAVAR OS XML /PDF NO ARQUIVO
HARBOUR 3.2, HWGUI 2.22 B4, SEFAZCLASS, DBFCDX, PDFClass
Fernando queiroz
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 294
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Rio Branco/acre
Curtiu: 3 vezes
Mens.Curtidas: 6 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Ranier » 07 Out 2019 21:54

Fernando queiroz escreveu:Bom, to querendo começar a migrar ou não para um SGDB , pergunta:
Qual a opção menos traumática em termos de mudanças
Andei olhando vaias opções
LETODBF
MYSQL
ACCESS
MARIADB

Qual seria a Indicação dos nobres colegas que já usam um SGBD
Os objetivos seriam:
SEGURANCA
PODER GRAVAR OS XML /PDF NO ARQUIVO

Estão aqui meus pitacos.
O melhor banco? PostgreSQL, sem dúvida nenhuma.
Vantagens:
Capaz de substituir o Oracle;
Suporte 100% ao SQL;
ACID 100%;
Rápido, estável e seguro (a versão 12 está um foguete);
Suporte a Blobs (grava qualquer binário, imagem, xml, pdfs, etc)
Suporte a gravação/leitura de xml;
Suporte a gravação/leitura de json;
Suporte a gravação/leitura de GIS (informações geográficas);

Desvantagens:
Insert mais lento que MySQL, pq é um banco totalmente MVCC, ou seja, todo e qualquer insert/update é criado um novo registro;

Segundo melhor banco? MySQL.
Vantagens:
Mais rápido que o PostgreSQL para gravar dados;
Suporte a Blobs (grava qualquer binário, imagem, xml, pdfs, etc)
Desvantagens:
Não têm suporte ao SQL 100%, (melhorou na versão 8)
Suporte a ACID somente com storage InnoDB;
Não têm suporte a gravação/leitura de xml;
Não têm suporte a gravação/leitura de json;

pergunta:
Fernando queiroz escreveu:Qual a opção menos traumática em termos de mudanças

Resposta curta, nenhuma. Passar do DBF para o SQL, exige mudanças, não têm como.

Com relação a forma de acesso, existe várias opções.
Livres:
SQLMIX
Vantagens: acesso nativo, multiplataforma
Desvantagens: sintaxe irregular, somente o básico, mistura acesso dbf/sql

ADO
Vantagens: sintaxe melhor, mais organizada, fácil de usar
Desvantagens: acesso ODBC (mais lento), somente Windows, suporte básico aos recursos do Banco

Não-Livres:
SQLRDD:
Vantagens: acesso nativo (alguns bancos), multiplataforma
Desvantagens: sintaxe irregular, mistura acesso dbf/sql, suporte básico aos recursos do Banco.

DBDDBD:
Vantagens: acesso nativo (PostgreSQL, Sqlite e MySQL), multiplataforma
Desvantagens: sintaxe dbf, mistura acesso dbf/sql

HBDBD:
Vantagens: acesso nativo (PostgreSQL, Sqlite e MySQL), multiplataforma, sintaxe clara e objetiva, api completa, fácil de usar, não mistura dbf/sql

Sobre a SQLRDD, aqui vai alguns comentários. Após estudar e implementar a API na biblioteca DBDRDD, para ter 100% do suporte da SQLRDD, posso dizer sem meias palavras que é a maior bagunça que já vi. Não aconselho pra ninguém que a implemente, ela acrescenta tantos problemas ao código, que é uma surpresa que consiga funcionar. A manutenção deve ser um pesadelo.

A mais fácil? Sem dúvida nenhuma a HBDBD, veja o exemplo dos fontes do HBSQL.
http://www.pctoledo.com.br/forum/viewtopic.php?f=39&t=23285&p=136353#p136353

Baseado em classes agora 100%.
Classe TConnnection, engloba todas as funcionalidades para se conectar ao Banco;
Classe TDataset, manipula o dataset de retorno;
Classe TPrepare, manipula "prepared queries";

Com a classe TDataset, pode-se usar um dataset dessa forma:
while(!oDS:Eof())
    hROW := oDS:RowHash()
    ? hROW["Nome"]
    oDS:Next()
End
Ranier
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 57
Data de registro: 02 Abr 2019 09:01
Cidade/Estado: Goiania/Goias
Curtiu: 0 vez
Mens.Curtidas: 7 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor JoséQuintas » 08 Out 2019 00:27

Fernando queiroz escreveu:Bom, to querendo começar a migrar ou não para um SGDB , pergunta:
Qual a opção menos traumática em termos de mudanças
Andei olhando vaias opções LETODBF, MYSQL, ACCESS, MARIADB
Qual seria a Indicação dos nobres colegas que já usam um SGBD
Os objetivos seriam: SEGURANCA, PODER GRAVAR OS XML /PDF NO ARQUIVO


Quase impossível tudo junto.
Quanto mais fácil, pior.
E sempre tem a questão de gosto pessoal e/ou forma de trabalho, que pode se alterar até mesmo durante a migração.

Segurança?
Bom... de DBF pra qualquer outra coisa, já ganha segurança.
Se tiver segurança demais... de repente a própria segurança pode te atrapalhar na migração.
Mas não sei se quer dizer segurança do ponto de vista de protegido, ou segurança do ponto de vista de não estragar.

Pode considerar o seguinte:
de DBF pra qualquer coisa.... vai ser complicado
De qualquer coisa pra outra coisa... vai ser mais fácil

Access - só se for uso local. Rede nem pensar, perigoso nos dias atuais
Mariadb - recebi comentário de problemas, diferenças com relação a MySQL
Letodbf - não sei dizer sobre salvar documentos, talvez tenha a limitação dos DBFs.
Sobrou da lista o MySQL.

Decidido por MySQL... aí vém outra coisa: como conectar ao MySQL? Há várias opções de fazer isso.
RddSql, SqlMix, a mais antiga do Harbour que se não me engano é hbmysql, ADO, Mediator, etc.

E depois tem o uso... de repente escolhe uma coisa, e na prática não acha confortável, ou vai aprendendo a usar o MySQL e decide tirar mais proveito dele...
Fora que pode escolher alguma coisa com bug, e nem saber que se trata de bug.

Sobre como conectar:
Em DBF não tem opção, é aquilo e pronto.
Em MySQL, há várias opções.
Mas nada impede de usar várias opções no aplicativo.
Então... num primeiro momento... o importante não é o que vai usar pra ir para o MySQL, mas sim ir para o MySQL.
Uma vez no MySQL, testa e escolhe o que quiser pra fazer uso dele.
Aprende como tirar proveito do que existe, e pode saber escolher outra alternativa.

MySQL: Salvo XMLs de nota desde 2008, há 11 anos, usando ADO.
Sou principiante ainda, muita coisa em MySQL, mas ainda principiante, fazendo pouco uso de recursos do MySQL.
MySQL é o melhor? ADO é o melhor?
Alguém me mostrou como usar Visual Basic 6 e ADO que era o uso comum do Visual Basic 6.
Também usei com DBF, simultâneo com Clipper. No VB6 usando comandos SQL e ADO pra usar DBF!!!!

Minha referência básica: funciona há 11 anos, nunca deu problema. Vou testar outra coisa pra que?

Nesse meio tempo, já usei servidor aqui comigo, servidor na internet, servidor nos clientes.... transferência de dados entre os servidores sem os clientes nem perceberem, etc.

Uma vez o cliente ligou pra mim: estou sem internet mas precisava da nota x... tem como pegar do seu servidor e enviar pra mim?
Eu só respondi: e quem disse que precisa do meu servidor ou da internet?, já está aí com você, já transferi tudo pro seu servidor!!!!
E ele consultou no aplicativo e viu que o XML, PDF, etc. tava tudo lá.

Sei pouco ainda do MySQL, tenho muito que aprender.
Mas... vou usando, e vou tirando proveito do que vou aprendendo.

Talvez não fizesse isso, se ainda estivesse tentando decidir o que usar.
Apenas vou testando, vendo o que é melhor ou pior, se dá pra melhorar ou não, e vou tirando cada vez mais proveito.

Tem mais rápido? tem mais eficiente? sei lá... só sei dizer que tá funcionando, e tá fazendo o que eu preciso.

Ainda não cheguei nessa parte de saber escolher o que poderia ser melhor....
Por enquanto só decidi fazer mais uso de MySQL... e acho que exagerei em mudar muita coisa ao mesmo tempo kkkkk
Corre o risco de voltar atrás para fazer uma coisa de cada vez.

É mudança de estrutura, mudança de nome de arquivo, mudança de chave de acesso, controle da numeração...
O problema é que me empolguei, e comecei a alterar uma coisa antes de terminar a outra...
Agora tá tudo incompleto kkkk
E complica conferir tudo de uma vez... chega uma hora que a gente começa a enxergar demais ou enxergar de menos.... kkkkk
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11719
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 747 vezes

Anterior Próximo



Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


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
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro