Clipper On Line • Ver Tópico - Teste de SQL com DBF

Teste de SQL com DBF

Discussão sobre SQL

Moderador: Moderadores

 

Teste de SQL com DBF

Mensagempor Ranier » 21 Jan 2020 22:17

JoséQuintas escreveu:Que bom que quando usei não tinha isso.
Usei pra 20 usuários.
Se a limitação for do ODBC atual, só usar o anterior.

" The Advantage Local Server file that is installed with Advantage client products contains a physical limitation such that only five or fewer users can concurrently access any table"
Se o próprio fabricante diz que têm limitação física de uso, é porquê ou ele não permite mais o uso, ou realmente têm problemas se usar com mais de 5 usuários.
ISSO QUEM DIZ não sou eu, é o fabricante.
O acesso local ao ADS por mil processos, em uma estação, não passa de um "chute", o limite deve estar na camada de rede.

JoséQuintas escreveu:
Ranier escreveu:Poderá usar MySQL em Windows, Linux e FreeBSD (legalmente), uma vez que a licença comercial, está na biblioteca.

Uia....De repente o que era proibido virou permitido.

E continua proibido. A HBDBD têm licença comercial da MySQL para uso, então o usuário da HBDBD, estará usando legalmente.

JoséQuintas escreveu:ODBC tem no Linux, ADO é apenas uma das opções que não tem no Linux.
Primeiro o problema era o ADS, depois era o MySQL, agora é o ADO.....

Todos essas "soluções" têm problemas.
ODBC têm no Linux, mas pra usar precisa de algo mais, não têm como usar ODBC diretamente.
ADO só existe no Windows e precisa do ODBC, que em todos os posts que já li nesse forum, indica o uso da ODBC da MySQL que têm licença GPL ou comercial.
Sem falar que ODBC é um intermediário, que traduz as chamadas, querendo ou não, é mais lento que o acesso nativo.

JoséQuintas escreveu:Faltou você mencionar:
A Microsoft declarou que o ADO era obsoleto, isso foi logo que entrou o W7 SP1, alguns anos atrás.
É que no W7 SP1, ela alterou a comunicação pra 64 bits, e não liberou componentes pra Visual Basic 6.
Era alterou pra 64 bits, pra funcionar com o Office que ela havia lançado.
Ou seja, obsoleto para os outros mas não pra ela....
Na época, recomendou usar CreateObject() ao invés da forma original do VB6.

Informação inútil.

JoséQuintas escreveu:Com certeza, até mesmo se for usar esse tal de HBDBD, não será nenhum problema se tiver treinado comandos SQL encima de DBF antes.

HBDBD, não usa DBF. Melhor fazer a transição direto pro SQL do SGDB a ser usado, por exemplo o PostgreSQL.
Com certeza, terá custos para se fazer as correções do SQL do ADS para o SQL do PostgreSQL, nunca são 100% compatíveis.
Ranier
Usuário Nível 2

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

Teste de SQL com DBF

Mensagempor JoséQuintas » 21 Jan 2020 23:29

Ok, ok,
Se não servir ADS, tem mais opções da Microsoft.
EU TENHO LICENÇA, posso gerar qualquer porcaria de programa pra distribuir os ODBCs junto.

odbc.png
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Teste de SQL com DBF

Mensagempor Ranier » 22 Jan 2020 00:06

JoséQuintas escreveu:Ok, ok,
Se não servir ADS, tem mais opções da Microsoft.
EU TENHO LICENÇA, posso gerar qualquer porcaria de programa pra distribuir os ODBCs junto.
odbc.png

Licença do Visual Basic 6, produto pago da Microsoft, não autoriza a distribuição do ODBC da MySQL, tampouco do ODBC da ADS.

E como você bem disse, usando esses ODBCs da Microsoft, só com porcaria mesmo.

Resumo, não serve pra mais ninguém.
Ranier
Usuário Nível 2

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

Teste de SQL com DBF

Mensagempor JoséQuintas » 22 Jan 2020 00:41

Só serve pra comprovar o que venho dizendo dos produtos xbase.

Fico imaginando agora quantos iguais a esse não tem nos atrapalhado no desenvolvimento.
Tudo isso porque fez um acesso a banco de dados.
Juntem a isso os que fizeram LIBs e outras coisas mais.

E aguardem... isso é só o começo... a invasão começou no harbour-users e vai se expandir cada vez mais....

Não pode ADS porque precisa licença
Não pode MySQL porque precisa licença

Melhor HBDBD, que precisa licença, mas o produto é dele, e ele é quem vai ganhar dinheiro...

Put. que par...
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Teste de SQL com DBF

Mensagempor JoséQuintas » 22 Jan 2020 13:10

https://searchitchannel.techtarget.com/feature/Using-MySQL-licensing-Open-source-license-vs-commercial-license

É proibido desenvolver um produto comercial, como um programa de contabilidade, voltado para o MySQL como banco de dados sem disponibilizar o código no sentido de código aberto. Se as limitações da GPL não forem aceitáveis ​​para você como desenvolvedor comercial, você poderá vender seu produto (programa) JUNTO COM UMA LICENÇA COMERCIAL DO MYSQL.


Ranier escreveu:A HBDBD têm licença comercial da MySQL para uso, então o usuário da HBDBD, estará usando legalmente.


Confirmado! programadores xbase costumam ser enganados.
Confirmado! os clientes dele usam MySQL sem licença.

E agora?
Será que ele vai comprar licença de MySQL para os clientes, ou pelo menos avisar os clientes?
Sugiro a quem comprou HBDBD, que EXIJA sua licença de MySQL, afinal ele garantiu que a licença vinha junto.
Aliás.. não apenas uma licença, várias, uma para cada um de seus clientes.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Teste de SQL com DBF

Mensagempor Ranier » 22 Jan 2020 13:31

JoséQuintas escreveu:https://searchitchannel.techtarget.com/feature/Using-MySQL-licensing-Open-source-license-vs-commercial-license

É proibido desenvolver um produto comercial, como um programa de contabilidade, voltado para o MySQL como banco de dados sem disponibilizar o código no sentido de código aberto. Se as limitações da GPL não forem aceitáveis ​​para você como desenvolvedor comercial, você poderá vender seu produto (programa) JUNTO COM UMA LICENÇA COMERCIAL DO MYSQL.


Ranier escreveu:A HBDBD têm licença comercial da MySQL para uso, então o usuário da HBDBD, estará usando legalmente.


Confirmado! programadores xbase costumam ser enganados.
Confirmado! os clientes dele usam MySQL sem licença.

E agora?
Será que ele vai comprar licença de MySQL para os clientes, ou pelo menos avisar os clientes?
Sugiro a quem comprou HBDBD, que EXIJA sua licença de MySQL, afinal ele garantiu que a licença vinha junto.
Aliás.. não apenas uma licença, várias, uma para cada um de seus clientes.

Acho que nossa colega têm toda razão, vc deve ser mesmo doente.
Acho que você nào sabe ler e fica valente atrás de um teclado.

Você não vende seu produto junto com o MySQL, para os seus clientes?
Então a mesma M**** que vc escreveu aqui pra mim serve PRA VOCÊ MESMO!!!

Ou o anafalbetismo o impede de ler a licença de uso dos produtos MySQL da Oracle.
Eu não distribuo servidores MySQL, nem os vendo.
A HBDBD têm licença comprada para uso como cliente do MySQL, então os usuários da HBDBD estão sim legalmente usando MySQL.

Ao contrário dos seus clientes, que podem exigir o código fonte da bosta do seu produto, porquê você está violando a GPL ao usar seu PRODUTO COMERCIAL com produto GPL da Oracle (MySQL) sem ter a devida licença.

Favor um favor pra você mesmo, vai se tratar.
Ranier
Usuário Nível 2

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

Teste de SQL com DBF

Mensagempor JoséQuintas » 22 Jan 2020 15:15

Ranier escreveu:Ou o anafalbetismo o impede de ler a licença de uso dos produtos MySQL da Oracle.
Eu não distribuo servidores MySQL, nem os vendo.
A HBDBD têm licença comprada para uso como cliente do MySQL, então os usuários da HBDBD estão sim legalmente usando MySQL.
Ao contrário dos seus clientes, que podem exigir o código fonte da bosta do seu produto, porquê você está violando a GPL ao usar seu PRODUTO COMERCIAL com produto GPL da Oracle (MySQL) sem ter a devida licença.
Favor um favor pra você mesmo, vai se tratar.


Se você deseja usar esses drivers em aplicativos comerciais, a seguinte regra está em vigor: Se os programas clientes do MySQL acessarem um servidor licenciado pelo MySQL, essa licença será válida para as bibliotecas do cliente. Portanto, geralmente não é necessário obter licenças para o uso de bibliotecas clientes, porque as bibliotecas clientes são incluídas automaticamente na licença do servidor.


Antes de iniciar o tratamento....
Ensine pra nós: Como fez pra licença de APLICATIVO COMERCIAL valer pra um cliente de acesso? só pro seu é que tá valendo isso e pra nenhum outro !!!
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Teste de SQL com DBF

Mensagempor JoséQuintas » 22 Jan 2020 15:47

Ranier escreveu:Favor um favor pra você mesmo, vai se tratar.


HBDBD não precisa licença de MySQL...

Se todo mundo usar HBDBD....
Ninguém nunca mais precisa comprar licença de MySQL !!!
Essa licença deve ter custado milhões !!!
Ele é praticamente dono do MySQL agora !!!

E eu é que preciso de tratamento.... kkkkkkkkkkkkkkkkkkkkkkkkkk
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Teste de SQL com DBF

Mensagempor JoséQuintas » 22 Jan 2020 17:20

Mas agora vamos a algo útil:

Interessa para os usuários atuais e futuros de MySQL, saber o valor da licença de MySQL para aplicativo.
Uma vez que comprou, já sabe qual é o valor.
Quanto custa?
E como vincula isso ao aplicativo, uma vez que sempre vai ter futuras versões?
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Teste de SQL com DBF

Mensagempor bencz » 23 Jan 2020 08:28

Segue as informações, José!

https://www.mysql.com/products/

Vale a pena ler isto aqui também: http://www.macoratti.net/msql_lc1.htm
Imagem
Avatar de usuário

bencz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 517
Data de registro: 28 Abr 2012 17:36
Curtiu: 6 vezes
Mens.Curtidas: 34 vezes

Teste de SQL com DBF

Mensagempor Poka » 23 Jan 2020 11:20

Complicado heim!

Graças a Deus escolhi o Firebird.

Poka
Avatar de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 509
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 23 vezes

Teste de SQL com DBF

Mensagempor JoséQuintas » 23 Jan 2020 16:11

mysql.png


Liguei na revenda Oracle do Brasil e confirmei:

Se o aplicativo for de uso interno da empresa, pode usar o MySQL Community Server e não precisa de licença.

Aplicativos vendidos, com lucro, nesse caso vão precisar de licença PARA CADA SERVIDOR, e o valor é 2.000 dólares POR ANO.

Além disso, existem os forks MariaDB e Percona Server.
Do mesmo jeito que temos Harbour 3.2, Harbour 3.4, etc, também existem esses forks do MySQL.
Esses dois forks são os principais, e podem ser usados gratuitamente.

Qual a diferença entre MySQL e os forks?
Sei lá... talvez nunca precisemos de nada avançado que faça diferença...

Convém destacar:
NÃO EXISTE LICENÇA PRA LIB E/OU DRIVER DE ACESSO A MYSQL.
A informação sobre usar HBDBD e não precisar de licença MySQL é totalmente falsa.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Teste de SQL com DBF

Mensagempor asimoes » 26 Jan 2020 09:32

Usando bind ? na query
A leitura de um DBF

        cSql := "SELECT APC.CODIGO, ADM.TIPO, ADM.DSAIDA, APC.CLASSE_PG, APC.UTI "
         cSql += "FROM APC01 APC "
         cSql += "INNER JOIN ADMSAUDE ADM ON ADM.MATRICULA = APC.CODIGO "
         cSql += "WHERE "
         cSql += "   ADM.TIPO IN ('T','D') AND "
         cSql += "   ADM.DSAIDA IS NULL AND "
         cSql += "   SubString(ADM.CODIGO,1,3) = ? AND "
         cSql += "   APC.UTI = ? AND "
         cSql += "   SubString(APC.CLASSE_PG,1,2) NOT IN ('06','08','10','11','12') AND "
         cSql += "   APC.D_FALECI IS NULL AND "
         cSql += "   APC.D_DESLIG IS NULL AND "
         cSql += "   APC.CODIGO NOT IN (SELECT APD48.CODIGO FROM APD48 APD48 WHERE APD48.CODIGO = APC.CODIGO AND APD48.T_GUIA = ? AND APD48.ANOMES = ? ) "
         cSql += "ORDER BY APC.CODIGO"
         
         IF oConexao:State != adStateOpen
            oConexao:Open()
         ENDIF
         
         WITH OBJECT oCommand
            //oPrm := :CreateParameter("DENTRADA", adDate, adParamInput, 8, CTOD('01/01/2018'))
            //        :Parameters:Append( oPrm )
            //oPrm := :CreateParameter("DENTRADA", adDate, adParamInput, 8, CTOD('31/12/2018'))
            //        :Parameters:Append( oPrm )
            oPrm := :CreateParameter("01", adVarChar, adParamInput, 4, 'UTI')
                    :Parameters:Append( oPrm )   
            oPrm := :CreateParameter("02", adVarChar, adParamInput, 1, 'S')
                    :Parameters:Append( oPrm ) 
            oPrm := :CreateParameter("03", adVarChar, adParamInput, 1, 'A')
                    :Parameters:Append( oPrm ) 
            oPrm := :CreateParameter("04", adVarChar, adParamInput, 4, '2002')
                    :Parameters:Append( oPrm ) 
                    :CommandText := cSql
                    :CommandType := adCmdText
            oRs := :Execute()
         END


Carregando o ResultSet para uma HashTable

         nCol := ( oRs:Fields:Count ) - 1

         hTable := {}
           
         oRs:MoveFirst()
         
         DO WHILE ! oRs:Eof
            hRecord := Nil
            hRecord := {=>}
            FOR i:=0 TO nCol
               hRecord[oRs:Fields( I ):Name] := oRs:Fields( i ):value
            NEXT
            aAdd( hTable, hRecord )
             oRs:MoveNext()
         ENDDO
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Teste de SQL com DBF

Mensagempor Mario Mesquita » 14 Jul 2023 11:00

Bom dia, pessoal.

Vendo os debates sobre o ADS, gostaria de saber se alguém usa em cliente satisfatóriamente.

Estava fazendo meus estudos e seguindo a dica do Quintas de usa-lo para treinar mas me bateu que podia usa-lo em produção em algumas áreas críticas em programas onde a busca em DBFs são lentas causando algumas queixas de clientes.

Seria sensacional pois seria uma transição suave para algum SGDB, que convenhamos leva tempo até ser 100% efetivada.

E em alguns casos, até poderia ficar assim em algumas coisas de baixa demanda ou ficarem para a última fase de uma migração.

Desde já agradeço qualquer opinião de vcs.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Teste de SQL com DBF

Mensagempor JoséQuintas » 14 Jul 2023 12:36

Muitos no harbour-users usam o ADS diretamente pelo Harbour, e com comandos SQL, sem nem mesmo passar pelo ADO.
Por outro lado, isso depende de preparar LIB pra isso, o que pode complicar pra começar testes.

Eu não tinha reclamação de ninguém, então fui pelo mais longo: fui convertendo um pouco de cada vez pra MySQL, SEMPRE EM USO, um pouco de cada vez, o aplicativo misturava DBF e MySQL, com limitações no começo.
Quem precisava aprender MySQL não era o aplicativo, era eu, então isso deu certo, fui aprendendo já colocando em prática.
Bastante tempo aplicado no começo de uso, pra evitar imprevistos futuros, confirmar codepage, numéricos, etc.

Mas o ADS vai ser válido, porque já pode começar tirando proveito justamente das consultas a várias tabelas de uma vez, que é onde mais vai tirar proveito de usar SQL.
E faz muita diferença de velocidade, porque o acesso do Harbour registro a registro é justamente a parte mais demorada.

Sinceramente, nem precisa opinião de ninguém
Mais simples
Crie uma rotina pra digitar comandos e trazer resultados, e faça testes variados de consulta pra ver velocidade.
Vá direto nesses casos mais críticos, e vai ter uma resposta rápida, sem nem mesmo mexer nos fontes do aplicativo.
Vai ser digitar um comando equivalente ao que está lento, e ver se fica mais rápido.
Se o resultado for bom, vai ter sua resposta.

Só pra lembrar:
ADO vai ser só uma comunicação intermediária, ele vai só enviar comandos pro ODBC e receber o resultado.
A rapidez não vai ser por usar ADO, vai ser por usar o ODBC.
Se depois usar outro conector, se ficar mais lento, aí a culpa vai ser da conversão do resultado.
Converter o resultado pra DBF não vale a pena. Os conectores do harbour NÃO convertem pra DBF, eles usam como se fosse DBF, isso é diferente de converter.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior 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