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 Itamar M. Lins Jr. » 21 Fev 2015 10:56

Amiguinho Itamar, não sabes o que fala, reveja seus conhecimentos sobre SQLRDD.

De novo ? O que já escrevi está errado ?
Por acaso o SELECT do SQLRDD é mais rápido do que o SELECT do SQLMIX ?
Quando usamos no SQLMIX dbusearea(...,select...) não é a mesma coisa que vc faz no SQLRDD porque simplesmente o SQLRDD engana o usuário. Na tabela de 100.000 registros na qual se refere quem disse que o SQLRDD traz(abre) os 100.000 registros ? ele traz só um pedaço... vc quer que no SQLMIX traga tudo ? Compara e acha que um é mais rápido do que o outro. Pode olhar que tem lá no SQLRDD o quantidade de registros p/ trabalhar.
Com SQLMIX trabalhamos diretamente via comandos SQL o resultado da QUERY é virtual não acessamos diretamente. Com SQLRDD trabalhamos direto na tabela tem SKIP na tabela, GOTO etc..., porque ? é como expliquei o SQLRDD simula DBF isso para uns é bom para outros, não é bom.
Com o SQLMIX temos SKIP, GOTO, mas na tabela virtual no resultado da QUERY, podemos apaga-la que não afeta nada na tabela MATRIZ, só temos acesso de leitura e gravação via comandos SQL, SELECT, INSERT, DROP...

E continuo não sabendo o que falo... é verdade....

E o pessoal do Harbour continua usando os principais motores SQL sem nenhuma falta de SQLRDD. Enquanto outros criam uma dificuldade porque entrou numa arapuca, e agora não sabe como sair.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 21 Fev 2015 11:25

a Hwgui do SVN regrediu de uma forma enorme, nem com Harbour e nem com xHarbour ela funciona mais, só roda o básico do básico, que é uma pena.

É exagero da sua parte.
Eu uso a 2.19 estamos quase sozinhos nessa empreitada a mais de 1 ano, simplesmente o Alexander foi abandonado e ainda tem os que torcem p/ que tudo dê errado porque acha que a dele é a melhor.

Mas enfim, bom mesmo são as ideias dos outros... todas copiadas, dos incompetentes do GPL.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor sygecom » 21 Fev 2015 12:09

Itamar M. Lins Jr. escreveu:
Amiguinho Itamar, não sabes o que fala, reveja seus conhecimentos sobre SQLRDD.

De novo ? O que já escrevi está errado ?
Por acaso o SELECT do SQLRDD é mais rápido do que o SELECT do SQLMIX ?
Quando usamos no SQLMIX dbusearea(...,select...) não é a mesma coisa que vc faz no SQLRDD porque simplesmente o SQLRDD engana o usuário. Na tabela de 100.000 registros na qual se refere quem disse que o SQLRDD traz(abre) os 100.000 registros ? ele traz só um pedaço... vc quer que no SQLMIX traga tudo ? Compara e acha que um é mais rápido do que o outro. Pode olhar que tem lá no SQLRDD o quantidade de registros p/ trabalhar.
Com SQLMIX trabalhamos diretamente via comandos SQL o resultado da QUERY é virtual não acessamos diretamente. Com SQLRDD trabalhamos direto na tabela tem SKIP na tabela, GOTO etc..., porque ? é como expliquei o SQLRDD simula DBF isso para uns é bom para outros, não é bom.
Com o SQLMIX temos SKIP, GOTO, mas na tabela virtual no resultado da QUERY, podemos apaga-la que não afeta nada na tabela MATRIZ, só temos acesso de leitura e gravação via comandos SQL, SELECT, INSERT, DROP...

E continuo não sabendo o que falo... é verdade....

E o pessoal do Harbour continua usando os principais motores SQL sem nenhuma falta de SQLRDD. Enquanto outros criam uma dificuldade porque entrou numa arapuca, e agora não sabe como sair.

Saudações,
Itamar M. Lins Jr.


Itamar,
Não estou falando em QUERY. Com QUERY uso pgsql do Rodrigo Moreno ou a SQLIB Open Source que também é muito boa. Você precisa ampliar e testar o uso da SQLRDD para ver como funciona.

Sobre a HWGUI, como você disse que está sozinho é por que você se dispôs a arrumar e testar tudo que foi desfeito, infelizmente não tenho essa disponibilidade, tento seguir um cronograma, assim que ele quebra, eu paro e espero a solução, assim posso a voltar a ajudar, fora isso se torna inviável eu continuar testando sendo que os problemas não são corrigidos.

E na verdade o Alexander é que abandonou a Hwgui por 5 anos, onde o Basso assumiu e fez muitas melhorias e agora o Alexander voltou e jogou tudo fora olhando apenas para lado dele, em vez de adaptar tudo para rodar com GTK, mas o Alexander é um ótimo profissional e tem conhecimentos muito avançados, então acredito que ele saiba o que está fazendo, mas para muitos isso se tornou um grande problema que para ajudar ele se tornar mais problema ainda.
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: 75 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 21 Fev 2015 13:26

Ola!
Concordo com muita coisa que vc escreve mas isso ai em baixo é um exagero da sua parte.
o Alexander voltou e jogou tudo fora olhando apenas para lado dele,


Ele copiou tudo p/ a pasta contribs\ext_controls
Estão lá os controles criados pelo Luis Basso. Só que ele não testou nada nem usa, e fez esse serviço mal feito.
Acredito ele ele achava que o pessoal iria testar e corrigir as possíveis falhas, quando ele viu que ninguém estava fazendo nada começou a corrigir sozinho.

A intenção dele é fazer a HWGUI compatível com UNICODE, UTF8, etc... e acredito que conseguiu.
Você precisa ampliar e testar o uso da SQLRDD para ver como funciona.


O funcionamento é como eu expliquei. Não tenho interesse em ficar refém de ninguém... Nenhum acesso moderno a base de dados SQL funciona da forma como funciona o SQLRDD. Já falei aqui DBF por DBF eu uso LetoDB ou NetIO.
Não estou falando em QUERY. Com QUERY uso pgsql do Rodrigo Moreno ou a SQLIB Open Source que também é muito boa.

Então é isso, SQLMIX trabalha com QUERYS e vc acessa com ele as principais bases de dados, PgSql, MySQL, MSSQL...
Não é possivel com SQLMIX dar um "REPLACE X WITH Y" ou usar "DBAPPEND()"... pode até usar na QUERY virtual mas não é salvo na tabela MATRIZ. Para acessar a tabelas Matriz só via INSERT INTO, UPDATE..., por isso não podemos comparar SQLMIX com RDDSQL, alias o SQLRDD não se compara com quase nada do mercado, apenas com o DbAccess que veio muito antes dele, e faz quase a mesma coisa.

Aqui um dos problemas de trabalhar imitando DBF no SQL causa.
https://groups.google.com/forum/#!topic/comp.lang.xharbour/hdQvLSZ72YI
E outros efeitos colaterais, inimagináveis... que só quem trabalhar com essa técnica sabe os pepinos que já passamos para resolver. Estou falando isso no caso de integração com outros programas.
Leia bem devagarinho isso ai em baixo...
Hi,
After transferring all my dbfs to SQL Server and linking applications with SQLRDD i've started to test my applications with SQLRDD in multiuser environment.
1. You can open exclusive tables by different instaneces of application
2. If opened exlusive: you can flock(), rlock() or update in both.
3. If opened shared: dbrlock() works as expected : can't dbrlock() locked record OK
4 If opened shared: you can't flock() if there is another flock() in other app. OK
5. If opened shared: you can flock() even if dbrlock() is done in other application, you can dbrlock() even if flock() is done also.
6. When rlock() is established and you try to update field (with no locking ) in locked record in other app then no error is thrown ( as in DBFCDX ) but infinite loop starts until dbunlock is issued in first app. Maybe this has something common with transactions levels i'm not aware of. ( still SQL newbie )

For me points 3 and especially 6 are the main problem because:

1. I use sometimes flock() which can't be successfull over rlock() (as in DBFCDX)
2. I planned to rewrite common parts of code to move to "try / catch" model with transactions and i've suppoused then inside this block the error will be thrown if a record/file is locked. Now I know this seems wrong assumption and rewriting of all code is needed because YOU CAN'T MIX RLOCK() WITH UPDATE ERROR CATCHING INSIDE TRANSACTION like is adviced. I'have a lot of personalized *.hrb procedures with CDX style coding i hoped to preserve some time after moving to SQL.

If i'm wrong or you can help me with understanding SQLRDD I will be gratefull.

Andrzej Morgiewicz

PS. For test and development:
I'm using SQL Server 2012,
I'm using SQLRDD libs from 2013.08.25 and 2014.08.11 ( i've got from Rafael, but this shows wrong numeric field len ),
I'm using current SVN xHarbour,
I'm also testing with xbscript linked with above libs.

PS. I can't install my current libs from xHarbour.com because after downloading and istalling i'm getting empty lib folder :(


E sou eu que não sei nada de SQLRDD... Para mim é o barato que sai caro só isso, uma arapuca, porque ninguém trabalha dessa forma no mundo moderno.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor sygecom » 23 Fev 2015 07:26

Caraca, pelo jeito você nunca usou nenhum deles para saber a diferença entre SQLMIX, SQLRDD e DBACESS(TOTVS) que você citou antes. Vamos acrescentar o Mediator para explicar para todos a diferença entre eles ?
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: 75 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor janio » 23 Fev 2015 08:26

Se eu tenho um cadastro co 100.000 registros e eu chamo um browse pra eu procurar algum registro (cadastro de produtos com pesquisa letra-a-letra, por exemplo)... eu devo mostrar os 100.000 registros no browse num eh? ou não?

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

Harbour - SQLMIX x SQLRDD

Mensagempor pauloa1 » 23 Fev 2015 10:44

Janio!

Depende, se for uma consulta via comando sql em postgres por exemplo, você pode usar o Limit + número de registros a retornar.
Exemplo, select codigo, nome from tabela limit 20 , vai trazer os primeiros 20 registros, depois em cada click pode trazer mais 20 e assim vai...

Depende também da lib Gráfica usada no browser, tem alguns browsers que só trazem os registros mostrados na tela.

Mas é tudo questão de como selecionar.

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 187
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 Itamar M. Lins Jr. » 23 Fev 2015 11:31

pelo jeito você nunca usou nenhum deles

Por favor melhore o nível de dialogo. Assim novamente não vamos a lugar nenhum.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor aferra » 23 Fev 2015 11:48

Hummm, interessante essa discussão, onde encontro material sobre o SQLMIX?
aferra
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 39
Data de registro: 30 Mai 2008 06:55
Cidade/Estado: Ribeirão Preto/SP
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 23 Fev 2015 12:20

eu devo mostrar os 100.000 registros no browse num eh? ou não?

Pois é Janio ninguém em sã consciência faz isso, traz só o tanto que cabe no browse ou cache.
Até no letodb temos isso.
; The number of records to read into the cache
; Cache_Records = 10

Porque no SQLMIX temos que trazer tudo ? Por isso o que sygecom escreveu está totalmente errado. Se ele não traz os 100.000 registros no SQLRDD porque quer que o SQMIX traga ?
O tempo de resposta da QUERY a demora é do MOTOR(MySQL...) em questão não do SQLRDD ou SQLMIX, isso vai depender do tamanho do retorno dos dados.
Eu posso pedir uma query de 10 linhas e a demora ser de 10minutos, se nesta QUERY conter IMAGENS ou WAV. (SOM) por exemplo... porque isso gera trafego na rede, imagine numa rede sem fio por exemplo.

Por isso eles não sabem responder partem p/ ridicularização, quando o assunto é sintaxe SQL. Porque quando usamos SQL em tudo, fica tudo igual, não há diferença entre SQLRDD ou SQLMIX.

Quando escrevo "SELECT TABLE clientes LIMIT 50" é um comando UNIVERSAL para os SGBD que adotam a sintaxe SQL ANSI, então não muda NADA se vc usa SQLRDD, SQLMIX,...

Com a sua popularização e sucesso, organizações como o Instituto Americano Nacional de Padrões (ANSI) e a Organização Internacional de Padronização (ISO), resolveram padronizar a linguagem SQL. Em 1986 foi criado um padrão ANSI e em 1987 foi criado um padrão ISO. A partir de então, surgiram várias versões do padrão SQL, onde cada versão acrescenta novos comandos ou funcionalidades. Algumas versões do padrão ANSI existentes até a presente data são:
...


No quesito velocidade sempre irá depender do tamanho da MALHA, da QUERY em questão que está sendo manipulada.
Por isso os usuários do SQLRDD estão ajoelhados(sonhando) pedindo p/ o pessoal do xHarbour.com fazer uma versão p/ Harbour que compile no MingW por exemplo. Os caras não irão fazer. Já houve até promessa mas até agora nada. Essa conversa rola nos foruns já tem dois anos indo p/terceiro ano já.
E mesmo que faça seria p/ atender uma pequena parte de pessoas que acham interessante simular DBF em bases SQL. Porque no Harbour temos outras alternativas enquanto no xHarbour ninguém da manutenção na pasta contrib por exemplo. Ninguém ensina usar o DRIVE do Rodrigo Moreno p/ Postgree que é muito bom.
[editado]
O Rodrigo Moreno foi uma das pessoas mais boicotadas na historia do xHarbour. O Rapaz é uma sumidade entende profundamente desse assunto. E há anos não vejo mais nada dos posts dele. Foi mais um que o ".com" $$$$$ deu fim, assim como o rapaz que fez a GTWVW e muitos outros...

O Przemek fez ajustes no hb_serialize... por exemplo p/ poder compilar o SQLRDD no Harbour mas os caras estão morrendo de medo de ser o tiro de misericórdia, a pá de cal do xHarbour. Pelo menos acredito que os usuários brasileiros sujeito debandar tudo p/ Harbour ou os poucos que restam.

2013-01-23 08:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/src/vm/classes.c
* updated some comments
* renamed hb_setClsHandle() to __objSetClassHandle()
old function name covered by HB_LEGACY_LEVEL5 macro

* harbour/src/rtl/itemseri.c
+ added support for deserialization xHarbour HB_SERIALIZE() output.
All types except codeblocks are supported. I haven't added support
for xHarbour serialized data with cyclic references. If it's
really necessary then I can implement it.
I also added workaround for bug in xHarbour serialization code so
now Harbour correctly decodes data with LONGLONG numbers though
xHarbour cannot correctly decode its own stream.
Now Harbour can deserialize xHarbour data encoded by HB_SERIALIZE()
and stored somewhere. It can be important in migration process, i.e.
SQLRDD uses HB_SERIALIZE() to encode data in memos so now SQLRDD
port for Harbour should read old tables and decode xHarbour items
correctly. The same is for any other tools which saves HB_SERIALIZE()
output in xHarbour.


Não faz porque ? Tirem suas conclusões.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 23 Fev 2015 13:02

onde encontro material sobre o SQLMIX?

No Harbour, na pasta contrib\hbsql e em outras pastas tem exemplos.
na pasta \contrib\sddodbc\tests

Usando SQLMIX em BASE MDB (access) o SQLRDD não faz isso!!!

#require "rddsql"
#require "sddodbc"

#include "simpleio.ch"

REQUEST SDDODBC, SQLMIX

PROCEDURE Main()

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

   Set( _SET_DATEFORMAT, "yyyy-mm-dd" )

   rddSetDefault( "SQLMIX" )
   ? "Connect:", rddInfo( RDDI_CONNECT, { "ODBC", "DBQ=" + hb_DirBase() + "..\..\hbodbc\tests\test.mdb;Driver={Microsoft Access Driver (*.mdb)}" } )
   ? "Use:", dbUseArea( .T., , "select * from test", "test" )
   ? "Alias:", Alias()
   ? "DB struct:", hb_ValToExp( dbStruct() )
   Inkey( 0 )
   Browse()

   INDEX ON FIELD->SALARY TO salary
   dbGoTop()
   Browse()
   dbCloseArea()

   RETURN


Conectando e usando com MySQL.

#require "rddsql"
#require "sddmy"

#include "dbinfo.ch"
#include "error.ch"

REQUEST SDDMY
REQUEST SQLMIX

ANNOUNCE RDDSYS

FIELD RESIDENTS

PROCEDURE Main()

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

   rddSetDefault( "SQLMIX" )

   ? "RDDs:"; AEval( rddList(), {| x | QQOut( "", x ) } )

   IF rddInfo( RDDI_CONNECT, { "MYSQL", "localhost", "test", , "test" } ) == 0
      ? "Unable connect to the server"
      RETURN
   ENDIF

   CreateTable()

   ? "Let's browse table (press any key)"
   Inkey( 0 )
   dbUseArea( .T., , "SELECT * FROM country", "country" )
   Browse()

   ? "Let's browse table ordered by resident count (press any key)"
   Inkey( 0 )
   INDEX ON field->RESIDENTS TAG residents TO country
   Browse()

   dbCloseAll()

   RETURN

STATIC PROCEDURE CreateTable()

   ? rddInfo( RDDI_EXECUTE, "DROP TABLE country" )
   ? rddInfo( RDDI_EXECUTE, "CREATE TABLE country (CODE char(3), NAME char(50), RESIDENTS int(11))" )
   ? rddInfo( RDDI_EXECUTE, "INSERT INTO country values ('LTU', 'Lithuania', 3369600), ('USA', 'United States of America', 305397000), ('POR', 'Portugal', 10617600), ('POL', 'Poland', 38115967), ('AUS', 'Australia', 21446187), ('FRA', 'France', 64473140), ('RUS', 'Russia', 141900000)" )

   RETURN


Conectando e usando com PgSQL(PostGres)
#require "rddsql"
#require "sddpg"

#include "dbinfo.ch"
#include "error.ch"

REQUEST SDDPG
REQUEST SQLMIX

ANNOUNCE RDDSYS

FIELD RESIDENTS, CODE, NAME

PROCEDURE Main()

   LOCAL tmp

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

   rddSetDefault( "SQLMIX" )

   ? "RDDs:"; AEval( rddList(), {| x | QQOut( "", x ) } )

   IF rddInfo( RDDI_CONNECT, { "POSTGRESQL", "postgresql://localhost/postgres" } ) == 0
      ? "Unable connect to the server"
      RETURN
   ENDIF

   CreateTable()

   ? "Let's browse table (press any key)"
   Inkey( 0 )
   dbUseArea( .T., , "SELECT * FROM country", "country" )
   Browse()

   ? "Let's browse table ordered by resident count (press any key)"
   Inkey( 0 )
   INDEX ON field->RESIDENTS TAG residents TO country
   Browse()

   dbCloseArea()

   /* append and goto tests */

   dbUseArea( .T., "SQLMIX" , "SELECT * FROM country", "country" )

   FOR tmp := 500 TO 600
      dbAppend()
      field->CODE := StrZero( tmp, 3 )
      field->NAME := "Test append " + hb_ntos( tmp )
   NEXT

   dbGoto( 101 )

   INDEX ON field->RESIDENTS TAG residents TO country

   dbCloseAll()

   RETURN

STATIC PROCEDURE CreateTable()

   LOCAL tmp

   ? rddInfo( RDDI_EXECUTE, "DROP TABLE country" )
   ? rddInfo( RDDI_EXECUTE, "CREATE TABLE country (CODE char(3), NAME char(50), RESIDENTS int)" )
   ? rddInfo( RDDI_EXECUTE, "INSERT INTO country values ('LTU', 'Lithuania', 3369600), ('USA', 'United States of America', 305397000), ('POR', 'Portugal', 10617600), ('POL', 'Poland', 38115967), ('AUS', 'Australia', 21446187), ('FRA', 'France', 64473140), ('RUS', 'Russia', 141900000)" )

   FOR tmp := 1 TO 100
      rddInfo( RDDI_EXECUTE, "INSERT INTO country VALUES ('" + StrZero( tmp, 3 ) + "', 'TestSQL " + hb_ntos( tmp ) + "', 3369600)")
   NEXT

   RETURN


E com FB que eu mesmo usei aqui.
cRdd  := RDDSETDEFAULT( "SQLMIX" )
cAttributes:="Server=;Database=127.0.0.1:c:\dados\datafb.fdb;User=SYSDBA;Password=masterkey;Driver={Firebird/InterBase(r) driver};"
nConn := RDDINFO( RDDI_CONNECT,{"ODBC",cAttributes} )

IF nConn == 0
   hwg_Msginfo( "Não conectado ao servidor: " + str(RDDINFO( RDDI_ERRORNO )) + hb_eol() + RDDINFO( RDDI_ERROR ) )
   RDDSETDEFAULT( cRdd )
   RETURN
ENDIF

DBUSEAREA( .T.,"SQLMIX", "select * from PRODUTO", "xx" )
index on refere TO temp1
DBUSEAREA( .T.,"SQLMIX", "select * from TAB_PRECO", "xZ" )
index on StrZero(CODIGO,15) TO temp2
DBUSEAREA( .T.,"SQLMIX", "select * from TAB_PROD", "xy" )
index on StrZero(INPRODUTO,15) TO temp3


Com MSSQL que eu fiz tambem.
cRdd  := RDDSETDEFAULT( "SQLMIX" )
nConn := RDDINFO( RDDI_CONNECT, { "ODBC", "Driver={SQL Server Native Client 10.0};Server=localhost;database=DATA_Z;Uid=MATRIZ;Pwd=zzzz" })

IF nConn == 0
   hwg_Msginfo( "Não conectado ao servidor: " + str(RDDINFO( RDDI_ERRORNO )) + HB_EOL() + RDDINFO( RDDI_ERROR ) )
   RDDSETDEFAULT( cRdd )
   RETURN
ENDIF
DBUSEAREA( .T.,"SQLMIX", "select * from dbo.TB_PRODUTOS_", "tp" )
index on id_produto tag 01 to yy_temp

DBUSEAREA( .T.,"SQLMIX", "select * from dbo.VW_DADOS_", "xx" )
index on codigo   tag 01 to xhwg_temp
index on idproduto tag 02 to xhwg_temp


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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor sygecom » 23 Fev 2015 13:32

Eu não disse para trazer 100 mil registros no Browse, eu disse para abrir uma tabela que tenha 100 mil registros ou mais. Itamar, você não entende o que você mesmo diz e nem lê, você não lê direito.
SQLRDD não precisa de um motor além do próprio SGBD, no lado cliente ele resolve todas as migração XBASE para SQL, já o MEDIATOR e DBACESS(TOTVS) resolve isso no lado servidor , por isso precisa instalar o aplicativo deles para para rodar no servidor.

SQLMIX por sua vez interpreta parte dos comando XBASE, ou seja, o SQLRDD consegue interpretar tudo, por sua vez posso usar um mesmo comando para rodar com POSTGRESQL, MYSQL, ORACLE e etc.... sem precisar colocar ou testar um IF para cada coisa.

Se você abrir usando o comando abaixo no SQLRDD ele vai abrindo conforme conforme vai navegando na tabela os registros.

use agenda alias agenda shared
browse()

Já para poder ter esse comportamento usando SQLMIX o programador já teria que programar uma paginação e etc...

Em fim, o SQLRDD tem milhares de pessoas/empresa usando, acho difícil enganar tanta gente assim, algo de bom ela deve ter, boa sorte e bons estudos.
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: 75 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor sygecom » 23 Fev 2015 13:37

O pior cedo é aquele que não quer ver, o fanatismo deixa a pessoa cega...
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: 75 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 23 Fev 2015 14:54

SQLRDD não precisa de um motor além do próprio SGBD, no lado cliente ele resolve todas as migração XBASE para SQL, já o MEDIATOR e DBACESS(TOTVS) resolve isso no lado servidor , por isso precisa instalar o aplicativo deles para para rodar no servidor.

Sim e o que que tem isso ?
É a forma que eles desenvolveram. Isso é só a instalação mas o funcionamento é parecido com o SQLRDD. SIMULAR DBF.

SQLMIX por sua vez interpreta parte dos comando XBASE, ou seja, o SQLRDD consegue interpretar tudo, por sua vez posso usar um mesmo comando para rodar com POSTGRESQL, MYSQL, ORACLE e etc.... sem precisar colocar ou testar um IF para cada coisa.

A conversa não foi essa. É sob a superioridade do SQLRDD em relação ao SQLMIX, eu só mostrei aqui que p/ uns é bom para outros é ruim.
São poucas pessoas que usam 3 ou mais bases diferentes. (MySQL/PostGres/MSSQL...) a pessoa escolhe um e segue... com o tempo faz possíveis alterações p/ outras bases. E tem ainda outras coisa que o pessoa está usando chamada STORED PROCEDURES.

Se você abrir usando o comando abaixo no SQLRDD ele vai abrindo conforme conforme vai navegando na tabela os registros.
use agenda alias agenda shared
browse()

É isso que estou dizendo o tempo todo. Para uns é bom para outros é ruim.
A pessoa não quer usar USE AGENDA .... nem DbGotop(),DBGoBottom(), nem DbSkip(), ela não usa isso nem sabe usar, ela usa comandos SQL!!!
Com SQLRDD vai continuar usando sintaxe xBase...
O pessoal do Xailer tem seu RDD nativo que faz isso tudo só que p/ MySQL e SQLITE...
Conexión con múltiples bases de datos: Nativo SQLITE y MYSQL, ADO y como Web Service


SQLMIX o programador já teria que programar uma paginação e etc...

Correto e é assim em qualquer lugar. Mas com SQLMIX não necessariamente, pois a QUERY é um DBF real não é simulado. é VIRTUAL.
Quem está usando SQLITE no Harbour tambem não trabalha com sintaxe DBF.

Pense nisso a nível de browse(FireFox/IE/Chrome...) o pessoal procura usa coisas genéricas, para adaptação no conceito geral.
Também por causa da adaptação no browse() do Harbour(skip,etc) o pessoal prefere usar ADO direto, que no Harbour também funciona.

Eu sei que o SQLRDD é uma ferramenta quer serve para vc por exemplo, só que não é o mesmo conceito da SQLMIX.

Vc que disse SQLMIX é inferior, compara e diz que SQLRDD é 1000% superior e eu que sou bitolado ?
Apenas estou tentando demonstrar aqui que são conceitos diferentes, que existe outras opções e opções boas p/ trabalhar com as principais bases de dados do mercado com harbour sem desembolsar nenhum centavo.

Enquanto vc defende um produto pago, eu estou mostrando a proposta de cada um. E não é de forma nenhuma a melhor opção para todos.
E ainda sou cego!
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 vezes

Harbour - SQLMIX x SQLRDD

Mensagempor Itamar M. Lins Jr. » 23 Fev 2015 15:09

tem milhares de pessoas/empresa usando, acho difícil enganar tanta gente assim,

Peça p/ essas pessoas usarem SQLRDD com C# ou com JAVA !!!!

Quem sabe vc vai conseguir entender o que estou falando.

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

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3658
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 124 vezes
Mens.Curtidas: 191 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