Novo ADORDD

Forum sobre SQL.

Moderador: Moderadores

AHF
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 29 Out 2015 16:20
Localização: SINTRA

Novo ADORDD

Mensagem por AHF »

Novo adordd disponivel em https://github.com/AHFERREIRA/adordd.git.

Com este rdd as n/ aplicações sáo convertidas em SQL através do uso de ADO puro em alguns minutos mais o tempo de upload das tabelas.

Este rdd é 100% compativel com rdds do tipo dbfcdx sendo a sua compatibilidade superior ao ADS rdd.
As aplicações convertidas não necessitam de qualquer alteração no codigo.

1) ler o ficheiro 01_readme.pdf e adicionar adordd.prg ao projecto actual.

2) Colocar este código com os dados da app a converter no proc ou func inicial.

Código: Selecionar todos

RddRegister("ADORDD",1) 
RddSetDefault("ADORDD") 

IF RDDSETDEFAULT() == "ADORDD"

    SET ADODBF TABLES INDEX LIST TO { ....... }
    SET ADO TEMPORAY NAMES INDEX LIST TO {"TMP","TEMP"}
    SET ADO INDEX UDFS TO {"IF","&","SUBSTR","==","DESCEND"} //at least these must be in and our Udfs

    SET ADO DEFAULT RECNO FIELD TO "HBRECNO"
   // SET ADO FIELDRECNO TABLES LIST TO {...}
    SET ADO DEFAULT DELETED FIELD TO "HBDELETE"
    //SET ADO FIELDDELETED TABLES LIST TO {.... }

    SET ADO LOCK CONTROL SHAREPATH TO  "******" RDD TO "DBFCDX"
    SET ADO FORCE LOCK ON //might be off 

    SET ADO DEFAULT DATABASE TO "******" SERVER TO "*****"  ENGINE TO "MYSQL" USER TO "****" PASSWORD TO "*****"
    SET ADO TABLENAME WITH PATH ON
    SET ADO CACHESIZE TO 50 ASYNC ON ASYNCNOWAIT ON

    //MSGINFO("PRE OPEN")
    SET ADO PRE OPEN THRESHOLD TO 3000
   // MSGINFO("PRE OPEN END")

    SET AUTOPEN OFF //can be on

    //comment this line after first execution to be faster
    //if  you dot comment it every execution will check if all tables have been loaded and because lOverwrite is .F.
    //do nothing
    hb_AdoUpload( "c:\yourdatabasepathroot\, "your actual rdd", "for ex MYSQL", .F. )

 ENDIF
3) Compilar e linkar. Somente o adordd.prg e o prg onde colocaram este código são recompilados.

4) Para reverterem a v/ aplicação para o estado anterior só têm de comentar rddregister e reesetdefault e reconstruir a app.

Podem testar na v/ real aplicação. Não trabalha bem ? Nao gostaram ? Sigam o ponto 4.

Se mais tarde quiserem usar USE ... WHERE ... entáo têm de incluir o adordd.ch no v/projecto e aí todos os prgs serão recompilados.

Antonio H Ferreira
AHF
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 29 Out 2015 16:20
Localização: SINTRA

Novo ADORDD

Mensagem por AHF »

New build adordd ver 1.0 at https://github.com/AHFERREIRA/adordd.git

Corrected bugs:

Logical fields array initialization.
scoped relations Scopes were not cleared when clear relation.
Eof and Bof vars were not being reset correctly by gotop and gobottom.

Changes:

1) New SET ADO TABLES DECIMAL FIELDS LIST TO....
Some engines like Access and SQlLite do not have specifically fields with decimal notation.
In these cases it was defaulting to 2 decimal places where could be more.
If the app would picture the gets with the fielddec function the nr of decimals places that could be entered
was only 2 although might be more.
With this set we let adordd knows the nr of decimals places per table and field.
When uploading tables that is done auto by adordd like for logical fields.
If you work with an engine that supports notation of decimals per field you might forget this set.
AHF
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 29 Out 2015 16:20
Localização: SINTRA

Novo ADORDD

Mensagem por AHF »

New build adordd ver 1.0 at https://github.com/AHFERREIRA/adordd.git

Corrected bugs:

DBCREATE if table exists just overwite it like in any other rdd. It was giving a error.

hb_AdoRddFile( cFile ) if rddsetdefault == "adordd" it test if file exist in DB
otherwise it passes to normal FILE() function.So you can use it for all cases with or without adordd.

When SET ADO DATABASE TO... cant open connection instead of quiting app it throw error 10500.

Changes:

SET ADO PRE OPEN THRESHOLD TO <nRecords> [ MASK <aMask> ]
Added new option MASK that allow to pre open recordsets containing nrecords and with value MASK in table name.
AHF
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 29 Out 2015 16:20
Localização: SINTRA

Novo ADORDD

Mensagem por AHF »

New build adordd ver 1.0 at https://github.com/AHFERREIRA/adordd.git

Corrected bugs:

APPEND with SQLITE, FIREBIRD, POSTGRE and ORACLE with index with UDF or condition was
adding the same bookmark twice.

ADO_REQUERY could fall into recursive calls after append new record using engines
Sqlite, FireBird Postgre and Oracle.

DBGOTO was giving error if the record was not within INDEX with UDF or condition.


Changes:

hb_AdoRddFile( cFile ) Check for index file in the adodbf index list... and support for Sqlite, Firebird, Oracle.
AHF
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 29 Out 2015 16:20
Localização: SINTRA

Novo ADORDD

Mensagem por AHF »

New build adordd ver 1.0 at https://github.com/AHFERREIRA/adordd.git

Corrected Bugs:

1) FIELDNAME was not returning upper fieldname in case of db engine PostGre, Oracle

2) Some upper case conversions to take care of lower case fields used by PostGre and Oracle.

3) Reserved keywords used in fields taken care with PostGre and Oracle.

4) SET TRESHOLD was not finding aMask if used table and SQL were with different case. Now all upper case.

5) Pre opening of recorsets optimized and cached for different where clauses on same table.
If the table its below the SET THRESHOLD and its already opened in another work area the set its not created again but cloned from that work area.
If during app run time a table passes the SET THRESHOLD value its cached next time is opened.

Tested engines:

ACCESS
ADS
DBASE
FIREBIRD
FOXPRO
MS SQL
MYSQL
POSTGRE
SQLITE

Still not tested but should work ok:

ANYWHERE
INFORMIX
MARIADB
ORACLE
AHF
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 29 Out 2015 16:20
Localização: SINTRA

Novo ADORDD

Mensagem por AHF »

New build adordd ver 1.0 at https://github.com/AHFERREIRA/adordd.git

New:

1) SET ADODBF INDEX LIST FIELDTYPE NUMBER TO {{ "Table",{ "numfiled", nlen },{"numfield", nLen } } }
adordd need a precise indication of the len of numeric fields used in index expressions.
This is only needed for numeric fields where the SQL type its without field len definition such as:
AUTOINC, MONEY, DOUBLE, INT, SMALLINT, etc.

Corrected Bugs:

1) ADOBEGINTRANS( nWA ) : without work are it starts a transaction in default adordd connection otherwise
it starts in the connection of the current work area.

2) ADOROLLBACKTRANS( nWA ) : without any work area it rolls back all transactions in all open connections
otherwise it rolls back transaction in same connection as that work area.

3) ado_create was adding an extra position in field len of numeric fields
now ADO_FIELDSTRUCT takes that position returning the correct len of a field type "N"
This could lead to side effects in INDEXKEY where the numeric field was part of the expression.
No tables structure corrections are necessary.

4) ADPSEUDOSEEK works now ok with fields type "T"

5) ADODUFINDEX if result of the index expression its numeric its considered as it was a UDF expression
because we cant extract field len to build a find, filter or query expression because the eval result
its the sum of all the numeric fields in the expression.

6) ORDKEYGOTO was not full implemented.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Novo ADORDD

Mensagem por sygecom »

Alguém usando ADORDD?
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

Novo ADORDD

Mensagem por JoséQuintas »

Eu continuo usando minha classe mesmo.
Nada contra, essa ADORDD é bem superior à que ainda existe no 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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Novo ADORDD

Mensagem por sygecom »

A parte chata que não consegui contornar é ter que instalar os drivers do ODBC em cada maquina que for usar o sistema, já no SQLRDD o uso nativo através da DLL deixa tudo mais fácil.
Ainda procuro uma solução para poder sair do xharbour que dependo do SQLRDD ainda.
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

Novo ADORDD

Mensagem por JoséQuintas »

Até que não é problema, já que o usuário pode clicar lá no next, next, next.
O ruim é quando a máquina está em domínio, e precisa do administrador.

Tem o SQLMIX também, que permite de tudo, como se fossem todas as RDDs em uma só.
Pode ser complicado o início, justamente porque envolve configurar mais de uma coisa de uma vez.
Mas não cheguei a usar.

Mas se não me engano tem a SQLRDD pra Harbour, não grátis.
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

Novo ADORDD

Mensagem por JoséQuintas »

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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Novo ADORDD

Mensagem por sygecom »

Uso esse ai e muito, problema é que em alguns caso o SQLRDD ainda consegue ser mais rápido nas pesquisas, ele consegue fazer internamente algum tipo de paginação que não consigo simular usando SQLWIN.
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

Novo ADORDD

Mensagem por JoséQuintas »

Não sei que tipo de configuração essas RDDs usam.
Talvez faça alguma diferença alterar a configuração.
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/
sergio.kondo
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 05 Set 2011 00:15
Localização: São Paulo/SP

Novo ADORDD

Mensagem por sergio.kondo »

Leonardo,

Este SQLWin é um produto acabado? Me lembro quando o projeto nasceu e em pouco tempo foi interrompido.

Atenciosamente,
Sérgio Kondo
sergio.kondo
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 05 Set 2011 00:15
Localização: São Paulo/SP

Novo ADORDD

Mensagem por sergio.kondo »

Antônio

Fiz download da ADORDD e tentei compilar o TryAdoRdd.prg junto como o AdoRdd.prg. E neste último faz uso da UR_SUPER_ERROR() e outras UR_xxx() que não encontrei em nenhum dos arquivos que baixei.

Como baixo o programa/lib onde estão definidas essas funções?

Atenciosamente,
Sérgio Kondo
Responder