SQL no DBF em breve (promessa) Aleksander Czajczynski

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por Itamar M. Lins Jr. »

Olá!

Fragmento da conversa.
Planejo fazer algum trabalho este ano para dar suporte a consultas SQL em cima de
RDD (qualquer área de trabalho aberta - não apenas na memória). Mas primeiro algo mais
tem prioridade!

Quem trabalharia em ideias como essas? Porque temos muito mais ideias,
que não são apoiadas por mão de obra.

Você pode fazer um tipo Unique( <aArray>/<hHash> ) que retornará um
array que tem apenas elementos/chaves exclusivos, se a fonte for hash use
HB_HKeys(). O JavaScipt parece ter uma especificação muito longa para uma
funcionalidade tão simples, realmente não parece necessário fazer um novo
ValType() a partir dele. Além disso, o nome Set() colide com DBASE/Clipper SET's

Atenciosamente, Aleksander
Olá Aleksander,
Seria incrível ter suporte SQL nativo no Harbour!
O VFP tem, mas é uma linguagem morta. Foi incrível poder executar vários SQL remotos de qualquer backend como o PostgreSQL, por exemplo, e então executar mais SQL local nesses resultados.
Talvez isso também ajude os desenvolvedores do xBase++ a migrarem para o Harbour, já que ele também tem algum suporte SQL local.
Poder executar milhares de consultas SQL localmente torna tudo muito mais fácil, especialmente para trabalhos ETL.
O SQL local também pode acessar variáveis ​​locais e até mesmo chamar funções ou métodos locais de objetos no escopo.
Terei prazer em escrever alguma documentação para ele, artigo em harbor.wiki e, claro, ajudar você a testá-lo.
Atenciosamente, Eric
Resposta do Aleksander Czajczynski
Muito obrigado por isso, entrarei em contato com você assim que tiver algo
utilizável e que valha seu tempo.
Já tem o LetoDbf, agora com SQL, vai ser show de bola.
Lembrando que as ultimas atualizações do LetoDbf(ELch) pegou do fork dele.

Vida longa e próspera ao DBF!
spok.png
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Ana Mitoooo
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 17 Out 2018 10:00
Localização: Sobradinho/DF

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por Ana Mitoooo »

Já tem isso pronto na QTContribs
https://sourceforge.net/p/qtcontribs/co ... ree/trunk/
https://sourceforge.net/p/qtcontribs/co ... cripts.prg
Pritpal Bedi
Dec 12, 2016, 11:14:14 PM
to QtContribs
2016-12-12 16:43 UTC-0800 Pritpal Bedi (bedipritpal at hotmail.com)(r443)
* hbqtwidgets/scripts.prg
% Changed : SQL parser from procedural to class code.

+ Array browser window adjusts to number of columns in the record upto
maximum columns which can be accomodated on the screen.

+ Implemented: SQL aggregate functions:
a) Count( * )
b) Min( cNumFieldName *|+|-|/ cSecondNumField *|+|-|/ cThirdNumField )
c) Max( cNumFieldName *|+|-|/ cSecondNumField *|+|-|/ cThirdNumField )
d) Avg( cNumFieldName *|+|-|/ cSecondNumField *|+|-|/ cThirdNumField )
e) Sum( cNumFieldName *|+|-|/ cSecondNumField *|+|-|/ cThirdNumField )

+ Implemented: SQL string functions:
a) SubStr( cCharFieldName, nFrom [, nCount ] )
b) Left( cCharFieldName, nCount )
c) Right( cCharFieldName, nCount )
d) Upper( cCharFieldName )
e) Lower( cCharFieldName )

+ Implemented: A general purpose field to club multiple numeric columns.
It is like SUM() function but is not an aggregate function. Syntax is:
a) Func( salary * age )


; WARNING: no parenthesis inside the function body.
; Title of the column representing above functions is constructed
automatically. Still, I am at a loss how to implement AS clause.
[ Preprocessor Limitation ].

; Example calls:
SELECT * FROM c:\harbour\tests\test.dbf ORDER BY age WHERE age>=90

SELECT first,last,age,state,zip,sum(age * age),count(*) ;
FROM c:\harbour\tests\test.dbf ORDER BY age-desc,state WHERE age>66

SELECT age,state,Func(age*salary),Right(state,1),Sum(salary),Min(salary),Max(salary),Avg(salary),Count(*) ;
FROM c:\harbour\tests\test.dbf GROUP BY age,state ORDER BY age-desc,state WHERE age > 66
Ana Mitoooo
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 17 Out 2018 10:00
Localização: Sobradinho/DF

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por Ana Mitoooo »

Quiser repassar na conversa do A.K., segue a classe desmembrada da qtContribs
Anexos
hb_Script_Sql.prg
Classe SQL em tabelas DBF
(31.51 KiB) Baixado 114 vezes
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por Itamar M. Lins Jr. »

Olá!
Já conhecia essa implementação do Pritpal Bedi. Eu uso a HBIDE dele.
Mas, essa que o Czajczynski( Prefiro pensar como KASINSK ) tipo os pinguins de Madagascar, Kowalski. rsrsrs.
Ele tem conhecimento para mexer internamente nos RDD do Harbour e do LetoDBf.
Vamos aguardar o desenrolar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por sygecom »

Não faz muito sentido, mas a notícia é boa.
Se é para usar é melhor partir logo para um MYSQL,MARIADB, POSTGRESQL e etc...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por alxsts »

Olá!

E pensar que em 1991 o FoxPro 2.0 já suportava sintaxe SQL..
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por JoséQuintas »

Sei lá...

Isso está disponível no ADS Local há mais de 30 anos, e via outros ODBC também, até da própria Microsoft.
Parece andar pra trás, perder tempo com o que não interessa.

Além disso, acesso SQL no harbour não vai ser o mesmo do que um acesso via server.

Sei lá o que passa na cabeça desse povo que insiste em DBF.
Todo mundo usando base de dados SQL, e esse povo insistindo em DBF.
Parece que esse povo não cansa de ficar isolado do mundo.

Vai ser por isso o mundo harbour se divide tanto... todo mundo quer ficar isolado kkkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por JoséQuintas »

Código: Selecionar todos

cmdConfirma.Enabled = False
Dim Rs As ADODB.Recordset
Dim cSQL As String
Dim nCont As Long
If Dir("lixo.dbf") <> "" Then SqlExecute "drop table lixo"
cSQL = "select " & _
   "cnDatEmi DtEmissao, " & _
   "count(*) CtrcQtd, " & _
   "Sum(cnPeso) CtrcPeso, " & vbCrLf & _
   "Sum(cnValor) CtrcValor, " & _
   "Sum(cnVlMerc) ValorMerc, " & _
   "0 CFQtd, " & vbCrLf & _
   "0 CFValor, " & _
   "0 ColetaQtd, " & _
   "0 ColetaVlr, " & vbCrLf & _
   "0 ColVlMerc " & vbCrLf & _
   "into lixo " & _
   "From gtconhe group by DtEmissao "
cSQL = cSQL & _
   "union all " & vbCrLf & _
   "select cfDatEmi DtEmissao, " & _
   "0 CtrcQtd, " & _
   "0 CtrcPeso, " & vbCrLf & _
   "0 CtrcValor, " & _
   "0 ValorMerc, " & _
   "count(*) CFQtd, " & vbCrLf & _
   "Sum(CFValor) CfValor, " & _
   "0 ColetaQtd, " & _
   "0 ColetaVlr, " & vbCrLf & _
   "0 ColVlMerc " & vbCrLf & _
   "From gtcontr group by DtEmissao "
cSQL = cSQL & vbCrLf & _
   "union all " & _
   "Select " & _
   "ceDatEmi DtEmissao, " & _
   "0 CtrcQtd, " & vbCrLf & _
   "0 CtrcPeso, " & _
   "0 CtrcValor, " & _
   "0 ValorMerc, " & vbCrLf & _
   "0 CFQtd, " & _
   "0 CFValor, " & _
   "Count(*) ColetaQtd, " & vbCrLf & _
   "Sum(ceValFat) ColetaVlr, " & _
   "Sum(jpnftr1.ntValor) ColVlMerc " & vbCrLf & _
   "from jpordem " & _
   "left join jpnftr1 on jpordem.ceNumLan = jpnftr1.ntColeta " & _
   "group by DtEmissao " & vbCrLf
   Set Rs = RsFromConexao(cSQL)
   Rs.Close
   cSQL = "select DtEmissao, Sum(CtrcQtd) CtrcQtd, Sum(CtrcPeso) CtrcPeso,  " & _
   "Sum(CtrcValor) CtrcValor, Sum(ValorMerc) ValorMerc, " & vbCrLf & _
   "Sum(CFQtd) CFQtd, Sum(CFValor) CFValor, " & _
   "Sum(ColetaQtd) ColetaQtd, Sum(ColetaVlr) ColetaVlr, Sum(ColVlMerc) ColVlMerc " & _
   "from lixo group by DtEmissao order by DtEmissao Desc "
   Set Rs = RsFromConexao(cSQL)
   Set MSHFlexGrid2.DataSource = Rs
   Rs.Close
   cSQL = "select Year(DtEmissao)*100+Month(DtEmissao) Mes, " & _
   "Sum(CtrcQtd) CtrcQtd, Sum(CtrcPeso) CtrcPeso,  Sum(CtrcValor) CtrcValor, Sum(ValorMerc) ValorMerc, " & vbCrLf & _
   "Sum(CFQtd) CFQtd, Sum(CFValor) CFValor, " & vbCrLf & _
   "Sum(ColetaQtd) ColetaQtd, Sum(ColetaVlr) ColetaVlr, Sum(ColVlMerc)ColVlMerc " & _
   "from lixo group by Mes order by Mes Desc "
   Set Rs = RsFromConexao(cSQL)
   Set MSHFlexGrid1.DataSource = Rs
É meu fonte Visual Basic, dos tempos do Windows 98, usando DBF e ADS Local.
Isso SEMPRE FOI GRÁTIS, e pode ser usado DIRETAMENTE NO HARBOUR SEM ODBC E EM WINDOWS OU LINUX, só usar RDDADS.
Faz parte do harbour.
30 anos funcionando.
Vão começar a criar algo parecido.... pra que ?
Pra ter bugs e ser jogado fora ?

Querem usar SQL encima de DBF ?
Usem já, pra que esperar.

Tanto faz se por RDDADS, ou por ADO, tanto faz, tem as duas opções, ou até mais.
Só perguntar no fórum harbour-users que vai aparecer muita gente usando.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por alxsts »

Olá!

Talvez fosse melhor investir este tempo para criar algum mecanismo para acessar bases de dados NoSQL. Creio que nada existe para esta finalidade. Nem sei se haveria alguém interessado em usar...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por JoséQuintas »

Tá aqui ó:

https://github.com/harbour/core/tree/ma ... rib/rddads

Alguém se interessou ?
Qual a diferença ?

Como diz o Itamar.... SQL NATIVO NO HARBOUR
EXISTE DESDE ANTES DO RDD DBFCDX SER ESTÁVEL.
Pra quem não lembra, na versão 0.99 do harbour ou antes, era recomendado usar esse.
Depois começou a ficar estável, e passou a ser usado o do harbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por JoséQuintas »

ads.png
Fonte criado pelo Alexander S. Kresin, da HWGUI em 2000
Mudou de pasta em 2013, pelo Viktor.
Disponível pra Windows e Linux, como dá pra perceber à direita.

SQL em DBF fez sucesso ? dezenas de anos disponível ?
Não.
Porque agora seria diferente ?

O Pritpal Bedi já fez um trabalho desse também.
Na minigui encontramos EasySQL, sei lá se é pra isso, nem perdi tempo olhando.
Também tem uma classe no fivewin pra usar com DBFs... também não perdi tempo olhando.
E por aí vai.

Quem quiser... tudo bem... nada contra quem quiser usar e quiser ficar isolado do mundo.
Talvez possa pedir suporte para o além, ou talvez pra IA.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por Itamar M. Lins Jr. »

Olá!
Pra mim será ÓTIMO!
Pq, vou usar a SINTAXE. O MOTOR tanto faz, já uso LetoDbf, excelente, SUPER VELOZ, quem usa sabe.
Imagine o seguinte, tem o SQLRDD do xHarbour, será praticamente a mesma coisa.
Depois de tudo em SQL, posso continuar ou não com DBF. Posso ESCOLHER pq passei a usa a SINTAXE SQL. Não tem DBF compartilhado.
O do ADS existe até hoje é BEM CARO! O DBF é um banco de dados como qualquer outro, SGBD, depois que criaram o LetoDbf, com as limitações dos comandos em DBF.
Se puder usar ele com SQL + arquivos na memória, como ele diz, será melhor ainda.
Não se compara com MariaDb, Postgress... mas depois de ter mudado tudo para SQL. A escolha será mais simples quando decidirmos mudar de DBF para Postgress por exemplo sem precisar reescrever tudo.
Nós usuário de DBF ficaremos muito satisfeitos se um dia poder usar SQL no Harbour, sem precisar de recorrer ao ADS.

Confio na visão deles. E até entender o que eles querem.
Imaginem não precisar usar mais SET FILTER e passar a usar INNER JOIN.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por Itamar M. Lins Jr. »

.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por sygecom »

JoséQuintas escreveu:Sei lá...

Isso está disponível no ADS Local há mais de 30 anos, e via outros ODBC também, até da própria Microsoft.
Parece andar pra trás, perder tempo com o que não interessa.

Além disso, acesso SQL no harbour não vai ser o mesmo do que um acesso via server.

Sei lá o que passa na cabeça desse povo que insiste em DBF.
Todo mundo usando base de dados SQL, e esse povo insistindo em DBF.
Parece que esse povo não cansa de ficar isolado do mundo.

Vai ser por isso o mundo harbour se divide tanto... todo mundo quer ficar isolado kkkkk
As vezes o cara só está entediado e com tempo, vai arrumar umas sarnas para se coçar kkkkkkk
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SQL no DBF em breve (promessa) Aleksander Czajczynski

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Depois de tudo em SQL, posso continuar ou não com DBF. Posso ESCOLHER pq passei a usa a SINTAXE SQL. Não tem DBF compartilhado.
O do ADS existe até hoje é BEM CARO!
Então....
http://pctoledo.com.br/forum/viewtopic. ... &hilit=ads

Em 2020 o A Simões fez isso, usou o ADS como ponte pra migrar pra MariaDB.
ADS SEM SERVIDOR SEMPRE FOI GRÁTIS.
Não é tão rápido quanto com servidor, mas é muuuuito mais rápido que dbf tradicional.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder