Clipper On Line • Ver Tópico - ADORDD e SQLMIX

ADORDD e SQLMIX

Discussão sobre SQL

Moderador: Moderadores

 

ADORDD e SQLMIX

Mensagempor JoséQuintas » 14 Jun 2015 20:47

Apenas relatando os fatos.

Baixei a nova ADORDD, que não faz parte do Harbour, e não consegui compilar, dá erros, talvez por dependência da fivewin.

Depois fui olhar SQLMIX.

Este é o exemplo na pasta tests, não diz muito.

#require "rddsql"

REQUEST SQLMIX

PROCEDURE Main()

   CLS

#if defined( __HBSCRIPT__HBSHELL )
   rddRegister( "SQLBASE" )
   rddRegister( "SQLMIX" )
#endif

   rddSetDefault( "SQLMIX" )
   dbCreate( "persons", { { "NAME", "C", 20, 0 }, { "FAMILYNAME", "C", 20, 0 }, { "BIRTH", "D", 8, 0 }, { "AMOUNT", "N", 9, 2 } }, , .T., "persons" )

   dbAppend(); AEval( { PadR( "Bil", 20 ),  PadR( "Gatwick", 20 ),  hb_SToD( "19650124" ), 123456.78 }, {| X, Y | FieldPut( Y, X ) } )
   dbAppend(); AEval( { PadR( "Tom", 20 ),  PadR( "Heathrow", 20 ), hb_SToD( "19870512" ),   9086.54 }, {| X, Y | FieldPut( Y, X ) } )
   dbAppend(); AEval( { PadR( "John", 20 ), PadR( "Weber", 20 ),    hb_SToD( "19750306" ),   2975.45 }, {| X, Y | FieldPut( Y, X ) } )
   dbAppend(); AEval( { PadR( "Sim", 20 ),  PadR( "Simsom", 20 ),   hb_SToD( "19930705" ),  32975.37 }, {| X, Y | FieldPut( Y, X ) } )

   dbGoTop()
   Browse()

   INDEX ON FIELD->AMOUNT TO amount
   dbGoTop()
   Browse()
   dbCloseAll()

   RETURN

PROCEDURE RDDSYS() ; RETURN  /* must be a public function */
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: 9259
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 535 vezes

ADORDD e SQLMIX

Mensagempor JoséQuintas » 14 Jun 2015 21:09

Me chamou a atenção o final do README.TXT

3. Modifying database

   SSI presents a query result via RDD interface and generates no hidden
SQL queries. So, how database can be changed? Does dbAppend() and FieldPut()
works, or is it readonly SQL interface?
   dbAppend(), FieldPut() and other similiar functions work on cached query
result, i.e. query can be appended by new rows and field values can be
changed, but SQL database is not changed. dbCreate() function can also be
used to create an "empty query result" but no table is created on SQL server.
So, SSI can also be used as implementation of "array RDD".
   The programmer must call SQL command explicitly to modify SQL tables.
SSI provides a method to detect which cached rows was changed or appended.


Se entendi direito, a SQLMIX é apenas pra consulta.

Sinceramente fiquei confuso, porque se for assim, cheguei num ponto onde estou fazendo o que ela faz.
Lógico... meu uso só serve pra ambiente Windows.
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: 9259
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 535 vezes

ADORDD e SQLMIX

Mensagempor janio » 15 Jun 2015 10:00

Quintas,

Acho que vc entendeu errado. Conforme ja li alguns lugares, o RESULTADO da consulta no SQLMIX eh um "dbf virtual". Nesse "dbf virtual" vc pode usar comandos xbase (dbskip(), dbAppend(), etc).

Nesse caso (usando comandos xbase), vc estara fazendo alterações NA CONSULTA e não na sua base de dados real.

Caso queira modificar o seu banco de dados... aí vc tera que usar comandos SQL e não xbase.

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: 1664
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 7 vezes
Mens.Curtidas: 35 vezes

ADORDD e SQLMIX

Mensagempor JoséQuintas » 15 Jun 2015 10:45

Foi isso que entendi também, mas talvez não tenha me expressado direito no meu texto.

Consultas -> resultado estilo xbase
alteração, inclusão e exclusão -> não podem ser estilo xBase, porque não salva no servidor. Tem que ser comandos SQL.

A conversão acaba sendo somente na consulta, e no restante é necessário alterar o fonte pra comandos SQL (inclusão, alteração, exclusão).

Meu uso ADO:

consultas -> resultado convertido pra DBF e uso estilo xbase
alteração, inclusão e exclusão -> comandos SQL

Se for isso mesmo, acabaram praticamente equivalentes, exceto SQLMIX funcionar em Linux.
E o mais interessante: por muito pouca diferença, a alteração de fontes é praticamente a mesma.

Fiquei mais confuso ainda. Tanto tumulto sobre qual usar, e é praticamente trocar seis por meia dúzia.

A questão passou a ser apenas opção de escolha, porque em termos de alteração de fonte deu no mesmo.
Tudo que vale pra SQLMIX vale pra ADO, e vice-versa.

Melhor... seja qual for a escolha, ao invés de discutir sobre qual usar, é só trocar idéia porque vale pra todas.

Lógico... vou puxar pro lado do ADO, porque nele fica claro o que está acontecendo, mas tanto faz.

De qualquer forma, o mais importante é o que vém depois, justamente as precauções disso em ambiente multiusuário, porque não dá pra fazer igual DBF.
Como eu disse várias vezes, uso MySQL há muitos anos, mas não no aplicativo inteiro.
Vou chegar nessa parte, e vou ter dúvidas como todo mundo.
Estou deixando pra me preocupar quando chegar lá.

Nota: Quando começou a discussão, eu ainda não tinha feito meu conversor pras consultas. Depois disso ficou equivalente.
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: 9259
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 535 vezes

ADORDD e SQLMIX

Mensagempor Itamar M. Lins Jr. » 15 Jun 2015 18:28

Faz tempo que estou explicando isso.
SQLMIX é melhor para os usuários do Harbour.

1) Traz tudo em DBF(o resultado) não precisar de ler uma vez e depois ler novamente p/ transformar em DBF.
2) Não precisa do Windows.
3) Usa sintaxe SQL para acessar as tabelas do servidor.(Liberdade em aprender mais uma maneira de trabalhar e não joga fora o conhecimento xBase)
4) Os comandos p/ conexão são mais simples e portanto mais fáceis de entender.

ADO é ADO não tem nada a ver! Só funciona no Windows!, Não traz o resultado em DBF, precisa reler tudo p/ transformar em DBF ou fazer algo parecido ao SQLMIX(reinventar a roda), a parte de conexão é confusa para o principiante, portanto é preciso aprender mais comandos!

Agora não ler o que escrevo... paciência!

Tem gente que irá gostar mais do ADO, porque já vem com a cultura do VB ou de algo similar que é o seu caso, mas para quem nunca usou VB nem ADO, é muito mais fácil aprender SQLMIX.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3157
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 87 vezes
Mens.Curtidas: 129 vezes

ADORDD e SQLMIX

Mensagempor alxsts » 15 Jun 2015 19:27

Olá!

Escrever código SQL na aplicação não é uma boa prática. O ideal é manter tudo em stored procedures e executá-las quando necessário.

Vou repetir a pergunta que fiz há algum tempo atrás: como se executa uma stored procedure ou function em SQLMix?

Na minha humilde opinião, migrar para SQL e manter sintaxe DBF só se justifica no caso de modernização de um sistema já existente, para ir eliminando esta sintaxe e trocando pela outra. Para sistemas novos, o certo é já usar SQL. Creio que a alternativa SQL mais moderna para se usar com Harbour, e multiplataforma, é a QT, que já traz as classes para acesso a este tipo de fonte de dados.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2014
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 13 vezes
Mens.Curtidas: 111 vezes

ADORDD e SQLMIX

Mensagempor Itamar M. Lins Jr. » 15 Jun 2015 20:08

Ola!
Alxsts, como vc manipula o resultado ?
Sobre Stored Procedures, eu não sou um usuário bom para ensinar isso porque eu uso muito pouco mesmo, mas eu achei isso.

try :

? RDDINFO( 1003, "begin ProcedureName( par1, par2); end ;", 'SQLMIX', nConnect)

Regards,
Marek Horodyski

Ou esse...
Maby so (on Oracle) :

DBUSEAREA( .T., 'SQLMIX', "SELECT * FROM TABLE ( procedureName( par1, par2) )", "AliasName", ,,, nConnect)

Regards,

Marek Horodyski


Sabendo que, não sou a melhor pessoa p/ explicar essas coisas.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3157
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 87 vezes
Mens.Curtidas: 129 vezes

ADORDD e SQLMIX

Mensagempor JoséQuintas » 15 Jun 2015 20:36

Minha pequena rotina de hoje, pra opção de DBF e MySQL.

         cFileDbf := "corre" + Right( StrZero( nCont, 4 ), 2 )
         IF .NOT. File( cFileDbf + ".DBF" )
            cnMySql:cSql := "SELECT * FROM CORRENTE WHERE ANOBASE=" + StringSql( StrZero( nCont, 4 ) ) + " AND LOCOD=" + Ltrim( Str( mLocad00Cod ) ) + ;
               " ORDER BY ANOBASE, LOCOD, NEXTRA, DB, DATA"
            cnMySql:Execute()
            cFileDbf := cnMySql:SqlToDbf( .T. )
            cnMySql:Rs:Close()
         ENDIF


Qualquer hora altero a classe pra reduzir mais.
De repente, trocar tudo isso por algo assim:

cFileDbf := cnMySql:ExecuteDbf( "SELECT * FROM CORRENTE WHERE ANOBASE=" + StringSql( StrZero( nCont, 4 ) ) + ;
   " AND LOCOD=" + Ltrim( Str( mLocad00Cod ) ) + " ORDER BY ANOBASE, LOCOD, NEXTRA, DB, DATA" )
USE ( cFileDbf )


No final, o que achava desvantagem era não poder checar usando -w3 -es2, mas campo de arquivo também não dá, então dá no mesmo.

Conforme se vai usando, vai se criando opções.
SqlToDbf( .T. ) - esse .T. é pra criar estrutura automaticamente, não tinha esse recurso antes.

O negócio é usar. Conforme se vai usando, vamos fazendo o que precisamos.

No momento, pra tudo, só uso esse objeto cnMySql, e nada mais.

A propósito... Mesmo criando DBF, é rápido.
O DBF é criado localmente, e o acesso é mais rápido do que qualquer rede.

corrente.png
corrente.png (7.84 KiB) Visualizado 1280 vezes

Não é muito, mas é outro arquivo com mais de um milhão de registros.
Levou 5 segundos pra gerar um extrato de 1994 até 2015 em formato PDF, pesquisando um ano por vez.
Nem sei se isso é rápido ou não, mas tá bom.

Criei essa rotina hoje, falta confirmar na rede/servidor do cliente.
Talvez ligue pra algum usuário da empresa, e peça pra ele clicar no "atualiza versão".
É assim que estou fazendo, é fazer e deixar liberado pra quem quiser atualizar.
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: 9259
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 6 vezes
Mens.Curtidas: 535 vezes

ADORDD e SQLMIX

Mensagempor Ruben Dario » 17 Ago 2015 18:40

Saludos

NO sabia con con los DBF se pueden manejar sentencias SQL.

Tienes un ejemplo mas completo , para manipular una DBF , para poderlo reproducir, y me muestras como lo compilas

Gracias
Ruben Dario
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 59
Data de registro: 14 Jun 2015 23:19
Cidade/Estado: Colombia
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

ADORDD e SQLMIX

Mensagempor sergio.kondo » 28 Fev 2016 19:24

Olá!

Infelizmente utilizo o xHarbour e gostaria de saber se é possível usar o SQLMix com xHarbour. Se sim, à partir de qual versão?

Atenciosamente,
Sérgio Kondo
sergio.kondo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 12
Data de registro: 05 Set 2011 00:15
Cidade/Estado: São Paulo/SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

ADORDD e SQLMIX

Mensagempor Mario Mesquita » 26 Mar 2016 14:48

Boa tarde!

Preciso "puxar" dados em uma base de dados Firebird para um programa meu com DBF.

Pelo que li, o SqlMix pode me ajudar a fazer isso com relativa facilidade para alguém com pouco conhecimento de SQL?

Se é possível, como baixo o SqlMix?

Desde já, agradeço a ajuda.

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

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 309
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 1 vez
Mens.Curtidas: 6 vezes

ADORDD e SQLMIX

Mensagempor sygecom » 26 Mar 2016 21:46

Vem junto com o Harbour, você está compilando com o que ai ? xHarbour ou Harbour e qual versão ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com
Avatar de usuário

sygecom
Membro Master

Membro Master
 
Mensagens: 6514
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 49 vezes

ADORDD e SQLMIX

Mensagempor Mario Mesquita » 27 Mar 2016 08:20

Bom dia!

Estou usando HMG 3.0.46. Até baixei a 3.4, mas está dando uns errinhos nos meus ícones e alguns textos na tela. Deve ser alguma bobagem, mas tenho que fazer ajustes e o tempo anda curto.

Então, mesmo com as vantagens das últimas versão, vou com a .46 que me atende muito bem por hora.

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

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 309
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 1 vez
Mens.Curtidas: 6 vezes

ADORDD e SQLMIX

Mensagempor sygecom » 27 Mar 2016 11:41

Mario,
HMG é uma lib gráfica para usar com Harbour ou xHarbour. Na pasta do harbour tem as contrib ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com
Avatar de usuário

sygecom
Membro Master

Membro Master
 
Mensagens: 6514
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 49 vezes

ADORDD e SQLMIX

Mensagempor Mario Mesquita » 27 Mar 2016 16:32

Boa tarde.

Sygecon, nas pastas Harbour do HMG 3.0.46 e 3.4.1 não encontrei nada referente a SQLMIX. Mas posso ter comido mosca. Vou procurar melhor.

Elas usam o Harbou 3.2, não é?

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 309
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 1 vez
Mens.Curtidas: 6 vezes

Próximo



Retornar para SQL

Quem está online

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


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