Idéia pra armazenar comandos SQL
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Até pensei que ia ficar no mesmo, mas....
o fonte C de update2020 reduziu em 700kb, mas o ze_resxml tá por volta de 600kb
Tá menor incluir como json do que incluir usando #include.
Interessante isso, pensei que seria o contrário.
o fonte C de update2020 reduziu em 700kb, mas o ze_resxml tá por volta de 600kb
Tá menor incluir como json do que incluir usando #include.
Interessante isso, pensei que seria o contrário.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Vixe...
Como cresceu...
26.154 linhas !!!
Nada diferente de antes, apenas juntei tudo.
Como cresceu...
26.154 linhas !!!
Nada diferente de antes, apenas juntei tudo.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Código: Selecionar todos
Pasta de d:\wwwjpa\arquivos
26/07/2021 12:43 3.513.264 JPA.EXE
Pasta de d:\fontes\integra
26/07/2021 20:32 3.502.512 jpa.exe
NÃO estava nem interessado nisso, mas reduziu um pouco o tamanho.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Uia...
LBALGER
O obj tinha 755.988
agora tem 220.440
Simples: Porque incluir a DLL normal, se posso incluir a DLL zipada....
A única coisa esquisita é que o EXE aumentou de tamanho.
Acho que a taxa de compressão final baixou.
LBALGER
O obj tinha 755.988
agora tem 220.440
Simples: Porque incluir a DLL normal, se posso incluir a DLL zipada....
A única coisa esquisita é que o EXE aumentou de tamanho.
Acho que a taxa de compressão final baixou.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
E depois de tudo isso....
capicom.dll, msxml5.dll, msxml5r.dll, rmchart.dll....
Quem vai usar isso precisa internet.
Se tenho um servidor grátis na internet.... gravar no MySQL da internet e pronto, em base64.
Quanto ao restante, vou avaliar aonde pode ser interessante deixar igual.
Notas:
- Não que seja grátis, faz parte do meu site, apenas não tenho cobrança adicional pra fazer uso dele.
- As dlls não faziam parte do arquivo, mas eram resource.
- Opcionalmente podem ficar no SQL do cliente, atualizado pelo da internet.
capicom.dll, msxml5.dll, msxml5r.dll, rmchart.dll....
Quem vai usar isso precisa internet.
Se tenho um servidor grátis na internet.... gravar no MySQL da internet e pronto, em base64.
Quanto ao restante, vou avaliar aonde pode ser interessante deixar igual.
Notas:
- Não que seja grátis, faz parte do meu site, apenas não tenho cobrança adicional pra fazer uso dele.
- As dlls não faziam parte do arquivo, mas eram resource.
- Opcionalmente podem ficar no SQL do cliente, atualizado pelo da internet.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
E uma idéia gera outra....
Pra quem ainda transfere DBF....
Uma opção seria salvar o DBF inteiro no MySQL, pra transferência.
Tanto faz se é DBF, EXE, DLL, OCX, PDF, XLS, DOC, ZIP, ou qualquer coisa.
Pra quem ainda transfere DBF....
Uma opção seria salvar o DBF inteiro no MySQL, pra transferência.
Tanto faz se é DBF, EXE, DLL, OCX, PDF, XLS, DOC, ZIP, ou qualquer coisa.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Não sei no cliente, mas aqui que tá com uma internet do carvalho... fica mais rápido do que ler do HD... kkkk
E mesmo pro upload.
Por enquanto tem DLL e JSON
E mesmo pro upload.
Por enquanto tem DLL e JSON
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Gostei desse esquema que acabei criando.
Uma tabela inteira vira apenas um campo no registro.
Ainda testando as possibilidades.
SELECT * FROM WEBBINARY WHERE NAME = 'sefazcfop'
Isso trás a tabela inteira de CFOP em ..... array !!!!
Muito interessante mesmo.
É aquele mesmo XML, mas agora dividido em registros do MySQL.
A parte XML sumiu e virou tabela MySQL.
Com isso, usar Excel ou DBF pra transferir informações virou coisa do passado.
Um gerador de relatórios capaz de ler JSON..... uau !!!
Uma tabela inteira vira apenas um campo no registro.
Ainda testando as possibilidades.
SELECT * FROM WEBBINARY WHERE NAME = 'sefazcfop'
Isso trás a tabela inteira de CFOP em ..... array !!!!
Muito interessante mesmo.
É aquele mesmo XML, mas agora dividido em registros do MySQL.
A parte XML sumiu e virou tabela MySQL.
Com isso, usar Excel ou DBF pra transferir informações virou coisa do passado.
Um gerador de relatórios capaz de ler JSON..... uau !!!
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Qual a diferença do anterior?
Esse é o servidor local, depois de ser atualizado com informações do servidor da internet.
A rotina de atualização que usei foi esta:
Serve pra trazer tudo que existir de atualização de uma vez.
Qualquer coisa: EXE, DLL, JSON, comando SQL, DBF, etc. qualquer coisa.
A partir daí, qualquer terminal tem acesso a tudo, sempre que precisar.
Esse é o servidor local, depois de ser atualizado com informações do servidor da internet.
A rotina de atualização que usei foi esta:
Código: Selecionar todos
STATIC FUNCTION AtualizaBinary()
LOCAL cnInternet := ADOClass():New( AppcnInternet() )
LOCAL cnSQL := ADOClass():New( AppConexao() )
SayScroll( "Atualizando referências" )
cnInternet:cSQL := "SELECT * FROM WEBBINARY"
cnInternet:Execute()
DO WHILE ! cnInternet:Eof()
cnSQL:cSQL := "SELECT BINDATE FROM JPBINARY WHERE BINNAME = " + StringSQL( cnInternet:String( "BINNAME" ) )
cnSQL:Execute()
IF cnSQL:Date( "BINDATE" ) < cnInternet:Date( "BINDATE" )
cnSQL:QueryCreate()
cnSQL:QueryAdd( "BINDATE", cnInternet:Date( "BINDATE" ) )
cnSQL:QueryAdd( "BINTYPE", cnInternet:String( "BINTYPE" ) )
cnSQL:QueryAdd( "BINVALUE", cnInternet:String( "BINVALUE" ) )
IF cnSQL:Eof()
cnSQL:QueryAdd( "BINNAME", cnInternet:String( "BINNAME" ) )
cnSQL:QueryExecuteInsert( "JPBINARY" )
ELSE
cnSQL:QueryExecuteUpdate( "JPBINARY", "BINNAME = " + StringSQL( cnInternet:String( "BINNAME" ) ) )
ENDIF
ENDIF
cnInternet:MoveNext()
ENDDO
cnInternet:CloseRecordset()
RETURN Nil
Qualquer coisa: EXE, DLL, JSON, comando SQL, DBF, etc. qualquer coisa.
A partir daí, qualquer terminal tem acesso a tudo, sempre que precisar.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Código: Selecionar todos
STATIC FUNCTION AtualizaBinary()
LOCAL cnInternet := ADOClass():New( AppcnInternet() )
LOCAL cnSQL := ADOClass():New( AppConexao() )
LOCAL aList := {}, aItem
SayScroll( "Atualizando referências" )
WITH OBJECT cnInternet
:cSQL := "SELECT BINNAME, BINDATE, BINTYPE FROM WEBBINARY"
:Execute()
DO WHILE ! cnInternet:Eof()
AAdd( aList, { :String( "BINNAME" ), :Date( "BINDATE" ), :String( "BINTYPE" ) } )
:MoveNext()
ENDDO
:CloseRecordset()
FOR EACH aItem IN aList
cnSQL:cSQL := "SELECT BINDATE FROM JPBINARY WHERE BINNAME = " + StringSQL( aItem[ 1 ] )
cnSQL:Execute()
IF cnSQL:Date( "BINDATE" ) < aItem[ 2 ]
cnInternet:cSQL := "SELECT * FROM WEBBINARY WHERE BINNAME = " + StringSQL( aItem[ 1 ] )
cnInternet:Execute()
cnSQL:ExecuteCmd( "DELETE FROM JPBINARY WHERE BINNAME = " + StringSQL( aItem[ 1 ] ) )
cnSQL:ExecuteCmd( "INSERT INTO JPBINARY ( BINNAME, BINDATE, BINTYPE, BINVALUE ) VALUES ( " + ;
StringSQL( aItem[ 1 ] ) + ", " + DateSQL( aItem[ 2 ] ) + ", " + StringSQL( aItem[ 3 ] ) + ", " + ;
StringSQL( cnInternet:String( "BINVALUE" ) ) + " )" )
cnInternet:CloseRecordset()
ENDIF
NEXT
ENDWITH
cnInternet:CloseConnection()
RETURN Nil
Baixa uma coisa de cada vez, e só baixa se precisar.
Isso é bom, caso o tamanho dos arquivos cresça muito, pra não perder tempo com o que não interessa.
Falta testar com internet lenta....
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Abusar é um perigo....
Pensei... porque não também já não armazenar o ODBC de MySQL/MariaDB
?
Porque NÃO serve pra nada.
Se pra acessar o MySQL precisa do ODBC instalado.... eu só teria acesso a ele, se ele já estivesse instalado, e neste caso, eu baixaria ele pra que
?
Pois é... ainda bem que pensei nisso antes de fazer....
Pensei... porque não também já não armazenar o ODBC de MySQL/MariaDB
Porque NÃO serve pra nada.
Se pra acessar o MySQL precisa do ODBC instalado.... eu só teria acesso a ele, se ele já estivesse instalado, e neste caso, eu baixaria ele pra que
Pois é... ainda bem que pensei nisso antes de fazer....
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Ainda nos testes iniciais.
4 DLLs
25 stored function
21 json
15 stored procedure
100 create table
passando de 4MB.
Por enquanto, puxando durante atualização de versão, mas não é o ideal ainda.
É que o aplicativo pode precisar de parte das coisas enquanto está sendo carregado, então desse jeito não atende totalmente.
4 DLLs
25 stored function
21 json
15 stored procedure
100 create table
passando de 4MB.
Por enquanto, puxando durante atualização de versão, mas não é o ideal ainda.
É que o aplicativo pode precisar de parte das coisas enquanto está sendo carregado, então desse jeito não atende totalmente.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Essa é uma "tabela livre".
Não significa que criou as tabelas, procedures, functions, etc.
O aplicativo apenas vai trazer do servidor externo para o servidor local, sem mexer em mais nada, algo como "deixar anotado".
Depois.... o aplicativo vai fazer uso disso pra se atualizar.
Já acrescentei tamanho e CRC32, pra conferir tudo, e evitar problemas.
É que quando for usar pra valer... tem que funcionar... não pode correr o risco de estar com defeito.
Não significa que criou as tabelas, procedures, functions, etc.
O aplicativo apenas vai trazer do servidor externo para o servidor local, sem mexer em mais nada, algo como "deixar anotado".
Depois.... o aplicativo vai fazer uso disso pra se atualizar.
Já acrescentei tamanho e CRC32, pra conferir tudo, e evitar problemas.
É que quando for usar pra valer... tem que funcionar... não pode correr o risco de estar com defeito.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
A rotina ficou complicada: ler um campo do SQL kkkk
Código: Selecionar todos
FUNCTION BinaryFromSQL( cName )
LOCAL cTxt
LOCAL cnSQL := ADOClass():New( AppConexao() )
WITH OBJECT cnSQL
:cSQL := "SELECT * FROM JPBINARY WHERE BINNAME = " + StringSQL( cName )
:Execute()
cTxt := :String( "BINVALUE" )
:CloseRecordset()
ENDWITH
RETURN cTxt
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Idéia pra armazenar comandos SQL
Um módulo usando isso acima:
É pra facilitar a configuração do meu controle remoto universal.
Tem o browse do tipo de equipamento, os fabricantes do tipo de equipamento, e os códigos.
Tudo montado a partir do JSON que vém do SQL.
Adorei isso.
Código: Selecionar todos
#include "inkey.ch"
PROCEDURE pTesRemSony
LOCAL aList, nOpc, aHash
LOCAL oAparelho, nOpcAparelho := 1
LOCAL oFabricante, nOpcFabricante := 1
LOCAL oCode
aHash := hb_JsonDecode( BinaryFromSQL( "sonyremote" ) )
DO WHILE .T.
Cls()
aList := {}
FOR EACH oAparelho IN aHash[ "devices" ]
AAdd( aList, oAparelho[ "device" ] )
NEXT
wAchoiceNoClose( 1, 1, aList, @nOpcAparelho, "Device" )
IF Lastkey() == K_ESC
EXIT
ENDIF
DO WHILE .T.
@ 0, 60 CLEAR TO MaxRow(), MaxCol()
aList := {}
FOR EACH oFabricante IN aHash[ "devices", nOpcAparelho, "brandCodes" ]
AAdd( aList, oFabricante[ "brand" ] )
NEXT
wAchoiceNoClose( 5, 30, aList, @nOpcFabricante, aHash[ "devices", nOpcAparelho, "device" ] )
IF LastKey() == K_ESC
EXIT
ENDIF
aList := {}
FOR EACH oCode IN aHash[ "devices", nOpcAparelho, "brandCodes", nOpcFabricante, "codes" ]
AAdd( aList, oCode )
NEXT
wAchoice( 10, 60, aList, @nOpc, aHash[ "devices", nOpcAparelho, "brandCodes", nOpcFabricante, "brand" ] )
( nOpc )
Inkey(0)
wClose()
ENDDO
wClose()
ENDDO
//ShowJson( aHash, "aHash" )
//Inkey(0)
RETURN
Tem o browse do tipo de equipamento, os fabricantes do tipo de equipamento, e os códigos.
Tudo montado a partir do JSON que vém do SQL.
Código: Selecionar todos
aHash := hb_JsonDecode( BinaryFromSQL( "sonyremote" ) )
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/
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/