FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Nuevo ADORDD
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Wed Oct 28, 2015 07:54 PM

Nueva ADORDD acumulaci贸n ver 1.0 en https://github.com/AHFERREIRA/adordd.git

Google translator:

Cambios:

Por 煤ltimo, parece que nos las arreglamos para aumentar dr谩sticamente los tiempos de apertura de enormes tablas y mucho mejor uso de la memoria.

1) Nueva SET ADO PRE OPEN THRESHOLD TO nRecords

Este conjunto ser谩 definir c贸mo ADORDD abrir谩 las mesas durante el tiempo de aplicaci贸n de ejecuci贸n.

Todas las tablas con registros de igual o mayor que nRecords y sin ninguna cl谩usula de apertura DONDE
estar谩 abierta durante toda la aplicaci贸n de inicializaci贸n.

Usted tendr谩 que esperar un poco para la aplicaci贸n para empezar, pero despu茅s de todo, la apertura de mesa que va a ser muy r谩pido.
Esto consume mucha memoria en el arranque pero menos durante el tiempo de aplicaci贸n de ejecuci贸n.

Usted debe equilibrarse el valor de nRecords en consecuencia a la vez que est谩 dispuesto a esperar para abrir
una mesa y su disponibilidad de memoria.
Es muy f谩cil abrir un par de mesas> 500.000 recs a utilizar algunos gigas de memoria.

Incluso sin esta SET ADORDD s贸lo se llevar谩 alg煤n tiempo la apertura de una mesa si no es abrir ya
de lo contrario ser谩 muy r谩pido.

ADORDD su ahora muy r谩pido y puede ser verdad en comparaci贸n con cualquier otro tipo de dbfcdx rdd.

He hecho algunas pruebas y parece estar funcionando bien. Por favor verifique en ustedes mismos y volver.

2) Limpieza C贸digo

3) Compilar mejor铆a con Harbour / xHarbour con o sin FiveWin.

4) 01_readme.pdf nueva informaci贸n SET.

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Thu Oct 29, 2015 10:56 AM

Nueva ADORDD acumulaci贸n ver 1.0 en https://github.com/AHFERREIRA/adordd.git

Cambios:

1) los 铆ndices de errores creando estaba buscando nombre de 铆ndice con = en vez de == regresan nombre y expresi贸n a veces mal.
Esto ha sido interrumpido al codificar las UDF en 铆ndices.

2) Nueva #ifef compilar con Harbour y xHarbour

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Tue Nov 10, 2015 10:16 PM

Nueva ADORDD acumulaci贸n ver 1.0 en https://github.com/AHFERREIRA/adordd.git

GOOGLE TRANSLATOR:

Errores corregidos:
聽聽聽脥ndices con UDF.
聽聽聽Bloqueo matriz lista
聽聽聽DBEVAL
聽聽聽Any: requery llama llamada autom谩tica ordsetfocus () para actualizar los 铆ndices.

Cambios:

1) ADO_CREATE
Secuencias y disparadores Corregido para Oracle y Firebird

2) RA脥Z SET ADO CAMINO A ... en lugar de ...
Esto le permitir谩 subir las tablas con cierta estructura de ruta y luego ejecutar la aplicaci贸n con
un camino diferente.
Si los nombres de tablas son con el camino en este conjunto y sin la aplicaci贸n no funcionar铆a.

3) SET ADO TABLAS campos l贸gicos lista para
Este conjunto de matriz se {{Tablename1, {campo1 Boole, booleanfield2, ...}} ,;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{TableName2, .....}}
Identificar campos booleanos para los motores que no tienen tipo booleano como Oracle, Firebird,
SQLite y otros.
En estos casos no hay manera de saber si un campo es booleano, por tanto, tenemos que este conjunto de
dejar que ADORDD conocer los campos booleanos presentes en cada mesa.

Con el fin de evitar el trabajo extra Al cargar tablas s贸lo de la familia dbfcdx de ADORDD DDR
se construye la matriz interna, porque a trav茅s del rdd dbfcdx se sabe si un campo es booleano, con el fin
que el proceso de carga no errores.
Al mismo tiempo ADORDD escribe toda esta informaci贸n en un .ado archivo para que pueda tener la relaci贸n de todos
tablas y campos booleanos que se debe colocar en esta aplicaci贸n pr贸xima vez establecido corre de lo contrario los resultados
son impredecibles. EL ARCHIVO "BOOELANFIELDS.ADO" EST脕 EN APP START PATH.

Al crear nuevas tablas, no temporal, debe informar a ADORDD trav茅s de este conjunto de los campos de Boole.
Con las tablas temporales que no es necesario porque en el del ADORDD creaci贸n mantiene un registro de tipo booleano
campos, pero s贸lo durante el tiempo de ejecuci贸n de la aplicaci贸n.

Si est谩 trabajando con motores que tienen campo de tipo booleano es posible que se olvide de este conjunto.

4) ADORDD prob贸 muy bien con sqlite y firebird adem谩s MsSql, MySql, Access, ADS, FoxPro, dBase.
Deber铆a funcionar sin problemas, pero no probado con Sybase tipo de servidores SQL Server, Informix, PostGreSQL.
Probablemente Oracle tambi茅n pero Ill comprobarlo pronto.

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Fri Nov 13, 2015 09:01 PM

Nueva ADORDD acumulaci贸n ver 1.0 en https://github.com/AHFERREIRA/adordd.git

google translator:

Errores corregidos:

Campos l贸gicos de inicializaci贸n matriz.
las relaciones de 谩mbito Scopes no quitaban relaci贸n al claro.
Vars EOF y BOF no estaban siendo restablecer correctamente por gotop y gobottom.

Cambios:

1) TABLAS Nueva SET ADO DECIMAL FIELDS LIST TO ....
Algunos motores como Access y SqlLite no tienen espec铆ficamente campos con notaci贸n decimal.
En estos casos, no cumpl铆a con 2 decimales, donde podr铆a ser m谩s.
Si la aplicaci贸n que imaginar la obtiene con la funci贸n fielddec el nr de decimales lugares que se pod铆a entrar
era s贸lo el 2, aunque podr铆a ser m谩s.
Con este conjunto dejamos ADORDD conoce el nr de decimales lugares por mesa y de campo.
Al subir las tablas que se hace auto por ADORDD como para los campos l贸gicos.
Si usted trabaja con un motor que soporta la notaci贸n de decimales por campo podr铆a olvidar este conjunto.

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Mon Nov 16, 2015 03:11 PM

Nueva ADORDD acumulaci贸n ver 1.0 en https://github.com/AHFERREIRA/adordd.git

google translator:

Errores corregidos:

DBCREATE si existe mesa s贸lo puede sobrescribir la que como en cualquier otra rdd. Se estaba dando un error.

hb_AdoRddFile (cFichero) si rddsetdefault == "ADORDD" que probar si el archivo existe en el PP
de lo contrario, pasa al archivo normal () function.So se puede utilizar para todos los casos, con o sin ADORDD.

Cuando SET ADO DATABASE TO ... no puede abrir la conexi贸n en lugar de aplicaci贸n chihuahuenses que tirar de error 10500.

Cambios:

SET ADO PRE OPEN THRESHOLD TO <nRecords> [MASK <AMASK>]
A帽adido nuevo MASK opci贸n que permite comprobar la validez de registros abiertos que contienen nRecords y con valor de m谩scara en el nombre de la tabla.

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Fri Nov 20, 2015 12:58 PM

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.

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Thu Nov 26, 2015 05:47 PM

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

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Mon Dec 07, 2015 12:57 PM

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.

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Tue Dec 08, 2015 03:15 PM

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

Corrected new Bugs due to changes previous build:

1) ADO_SQLSTRU with firebird numeric fields precision fieldlen was wrong

2) ADO_FIELDSTRUCT integers doesnt take any extra position.

3) ADO_PUTVALUE trim spaces to check data width error with numbers.

Regards

Antonio H Ferreira
Posts: 838
Joined: Fri Feb 10, 2006 12:14 PM
Re: Nuevo ADORDD
Posted: Tue Mar 07, 2017 09:47 PM

(Google translator)
Nueva versi贸n de AdoRdd 1.070317 en https://github.com/AHFERREIRA/adordd.git

Mejoras y errores corregidos:

ADO_ORDCREATE despu茅s de crear el 铆ndice no lo estaba abriendo.

ADO_SEEK clave con varios campos con softseek en iba a eof en lugar de 煤ltima clave.

ADOFILE si la conexi贸n no v谩lida devuelve ahora. En lugar de HB_FAILURE.

ADOOPENCONNECT si el motor no est谩 soportado o est谩 mal configurado alerta al usuario.

ADOBEGINTRANS si el workarea no especificado abre las transacciones para cada conexi贸n abierta
ADOCOMMITTRANS y ADOROLLBACKTRANS lo mismo que ADOBEGINTRANS

Nueva funci贸n ADONESTEDTRANS (nWA) devuelve nr de transacciones anidadas

NUEVO C脫DIGO DE ERROR 10600 - conexi贸n no disponible no puede encontrar transacciones

ADO_ALREADYOPEN Prueba si el conjunto de registros abierto tiene la misma instrucci贸n de consulta Sql.

ADORECCOUNT El nombre de tabla no se estaba convirtiendo para obtener fieldrecno si se defin铆a
Para esa tabla siempre devolvi贸 ese predeterminado.

REGISTRO DE APLICACI脫N DE APLICACI脫N Registros de conteo m谩s r谩pidos. No almacena en cach茅 ninguna tabla con la cl谩usula WHERE.

Todos los cursores ADO cambiaron en el c贸digo de adoptendynamic a adopenstatic, aunque siempre
Comenz贸 como adoptenstatic.

Nuevas caracter铆sticas:

Nueva opci贸n PORT en SET ADO DEFAULT DATABASE ...

ADO_ORDINFO ordwildseek implementado

Soporte de 贸rdenes m煤ltiples con nuevo SET:
SET ADODBF MULTIBAG INDICE LIST A {{"INDEX NAME", {TAGORDER 1 "," TAGORDER2 "}}}
Esto permite que el soporte de archivos de 铆ndices de bolsas m煤ltiples sea exactamente igual que cualquier otro rdd de DBf.
ATENCI脫N
Ahora cuando SET AUTOOPEN ON no abre todos los archivos de 铆ndice autom谩ticamente en SET ADODBF INDEX LIST
S贸lo abre el NOMBRE DEL 脥NDICE presente en SET ADODBF MULTIBAG INDEX LIST TO que coincide con el nombre de la tabla.

Conjuntos de registros de apertura m谩s r谩pidos:

SET RECORDSET OPEN WHERE CLAUSE A {{"TABLENAME", "SQL WHERE EXPRESSION"}}

ADOWHERECLAUSE ADORDD funci贸n que nos permite cambiar el conjunto de registros cl谩usula WHERE al vuelo manteniendo todos
Workarea como Filtros, Alcances, 脥ndices, etc.

Ex

SET RECORDSET ABRIR DONDE CLAUSULA A {{"table", "FIELDANEMYEAR = '2017'"}}

USE tabla
BROWSE () // s贸lo los registros que cumplan la cl谩usula "where"
// queremos ver algunos datos hist贸ricos
COldQry: = ADOWHERECLAUSE (SELECT (), "FIELDANEMYEAR = '2012'")
browse()
// Volver al a帽o actual
ADOWHERECLAUSE (SELECT (), cOldQry)
browse()

Regards

Antonio H Ferreira
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Nuevo ADORDD
Posted: Mon May 15, 2017 03:15 PM

Saludos
Baje la ultima Version
Trato de compilar y me da este error Usando bcc71 y Harbour

     \harbour\bin\harbour \v_xharb_v3\librerias\ADORDD\adordd.PRG  /l /m /q /es2 /gc1 -D__EXPORT__ -D__HARBOUR__ /O.\obj1\ /I\harbour\include;\v_xharb_v3\include;\fwh\include  -w0 &gt; comp.log
    \bcc71\bin\BCC32  -c -tWM -I\harbour\include -o.\obj1\adordd .\obj1\adordd.c

Embarcadero C++ 7.10 for Win32 Copyright (c) 1993-2015 Embarcadero Technologies, Inc.
.\obj1\adordd.c:
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 933: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 934: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 935: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 938: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 939: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 940: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 965: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 966: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 967: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 970: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 971: Declaration missing ;
Error E2139 k:\bcc71\include\windows\sdk\commdlg.h 972: Declaration missing ;
*** 12 errors in Compile ***

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com

Continue the discussion