Page 2 of 7

Posted: Thu Sep 11, 2008 1:29 pm
by Antonio Linares
Nueva versión que modifica el campo sql_recno como NOT NULL, AUTO_INCREMENTAL y UNIQUE. Tambien _ en sql_deleted NOT NULL. Código más limpio y probado con Harbour y xHarbour:

www.fivetechsoft.com/files/sqlwin.zip

Posted: Fri Sep 12, 2008 2:44 pm
by MOISES
Antonio:

Creo que debería llamarse FiveSQL o FivewinSQL, dado que para Harbour hay varias librerias y se crea bastante confusión, y así se diferencia tu RDD de otros.

Posted: Fri Sep 12, 2008 3:29 pm
by Alfredo Arteaga
Voto por FiveSQL o FWHSQL, algo que lo relacione con FiveWin me parece mejor idea.

Ayer intenté compilarlo y si compila pero lo único que obtengo es un GPF.

Habrá alguna alma caritativa que me apoye en como iniciar?, me gradaría apoyar en lo posible.

Gracias.

Posted: Fri Sep 12, 2008 5:14 pm
by sysctrl2
yo ya pude compilar con xharbour

que les parece FwhxSql


saludos...

Posted: Fri Sep 12, 2008 5:35 pm
by Antonio Linares
Alfredo,

Vuelve a descargarlo y a probarlo. Ya está probado con Harbour y xHarbour.

Respecto al nombre, es lo de menos, lo importante es que consigamos entre todos que funcione bien :-)

Posted: Fri Sep 12, 2008 10:19 pm
by Antonio Linares
Una nueva versión que implementa FieldPut() (asignación de campos):

www.fivetechsoft.com/files/sqlwin.zip

Posted: Sat Sep 13, 2008 12:31 am
by Antonio Linares
Nueva versión que implementa DbAppend()

www.fivetechsoft.com/files/sqlwin.zip

Donde estan los colaboradores ? :-)

Posted: Sat Sep 13, 2008 12:48 am
by sysctrl2
Antonio,

disculpa, mis bajos conocimientos, no alcanzan para desarrollar como

ustedes los gurues,

pero he hecho las pruebas desde el primer ejemplo que posteastes,

si en alguna cosa mas puedo ser util, soy materia dispuesta.


saludos.... desde la cd. de mexico.

Cesar C.C.

Posted: Sat Sep 13, 2008 8:23 am
by Antonio Linares
Cesar,

Gracias por tu respuesta :-)

Lo importante es tener algún tipo de información por parte de quienes lo estan probando. Si tienen preguntas, dudas, comentarios, lo que sea :-)

Posted: Sat Sep 13, 2008 5:06 pm
by Ruben D. Fernandez
Antonio:

Deseo colaborar en este proyecto de la manera que pueda ser util.
Conocimientos menos que mas.
Quizás haciendo un archivo .chm o .hlp con ejemplos y todo.
Lo que necesito es el contenido que desean incluirle si estan de acuerdo.

Saludos y gracias.

Ruben Fernandez.

Nota. Vamos Adolfo, tengo fe en tus aportes.

Posted: Sun Sep 14, 2008 2:54 am
by Alfredo Arteaga
Como usuario de SQLRDD les comento que hay una opción para ver las sentencias SQL que se generan durante la operación, he aquí el LOG de un pequeño programa de prueba que crea una tabla, la indexa, agrega y borra registros.

Esto por si es de ayuda para el avance de SQLWIN.

Code: Select all

09/13/08 21:36:37: SELECT * FROM `clientes_dbf` WHERE 0 = 2	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DROP TABLE `clientes_dbf` /* create table */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTINDEXES WHERE TABLE_ = 'CLIENTES_DBF' /* Wipe index info */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTTABLES WHERE TABLE_ = 'CLIENTES_DBF' /* Wipe table info */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTLANG WHERE TABLE_ = 'CLIENTES_DBF' /* Wipe table info */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTCONSTRAINTS WHERE TABLE_ = 'CLIENTES_DBF' /* Wipe table info */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTCONSTRAINTS WHERE SOURCETABLE_ = 'CLIENTES_DBF' /* Wipe table info */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTCONSTRTGTCOLS WHERE SOURCETABLE_ = 'CLIENTES_DBF' /* Wipe table info */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTCONSTRSRCCOLS WHERE SOURCETABLE_ = 'CLIENTES_DBF' /* Wipe table info */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: SELECT * FROM `clientes_dbf` /* check dropped table */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: CREATE TABLE `clientes_dbf` (    `nombre` CHAR (40) , 
   `direccion` CHAR (40) , 
   `telefono` CHAR (12) , 
   `logico` TINYINT, 
   `date` DATE, 
   `edad` REAL (5,2) , 
   `sr_recno` BIGINT (15) NOT NULL UNIQUE AUTO_INCREMENT , 
   `sr_deleted` CHAR (1)  NOT NULL
 ) Type=InnoDb 	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DELETE FROM SR_MGMNTTABLES WHERE TABLE_ = 'CLIENTES_DBF'	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: INSERT INTO SR_MGMNTTABLES ( TABLE_ , SIGNATURE_, CREATED_, TYPE_, REGINFO_ ) VALUES ( 'CLIENTES_DBF','MGMNT 1.72', '2008091321:36:37','TABLE',' ' )	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: SELECT MAX( `sr_recno` ) FROM `clientes_dbf` /* Counting Records */	
09/13/08 21:36:37: SELECT A.* FROM `clientes_dbf` A  WHERE 1 = 0 /* Open Workarea */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: SELECT TABLE_,SIGNATURE_,IDXNAME_,IDXKEY_,IDXFOR_,IDXCOL_,TAG_,TAGNUM_ FROM SR_MGMNTINDEXES WHERE TABLE_ = 'CLIENTES_DBF' ORDER BY IDXNAME_, TAGNUM_	
09/13/08 21:36:37: SELECT A.* FROM `clientes_dbf` A  ORDER BY A.`sr_recno`  LIMIT    12 /* GoTop */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: SELECT MAX( `sr_recno` ) FROM `clientes_dbf` /* Counting Records */	
09/13/08 21:36:37: SELECT A.* FROM `clientes_dbf` A  ORDER BY A.`sr_recno`  LIMIT    12 /* GoTop */	
09/13/08 21:36:37: SELECT TABLE_,SIGNATURE_,IDXNAME_,IDXKEY_,IDXFOR_,IDXCOL_,TAG_,TAGNUM_,PHIS_NAME_ FROM SR_MGMNTINDEXES  WHERE TABLE_ = 'CLIENTES_DBF' AND IDXNAME_ = 'CLIENTES_DBF' AND TAG_ = 'xNombre' ORDER BY IDXNAME_, TAGNUM_	
09/13/08 21:36:37: DELETE FROM SR_MGMNTINDEXES WHERE TABLE_ = 'CLIENTES_DBF' AND IDXNAME_ = 'CLIENTES_DBF' AND TAG_ = 'xNombre' /* Wipe index info 01 */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: SELECT TABLE_,SIGNATURE_,IDXNAME_,IDXKEY_,IDXFOR_,IDXCOL_,TAG_,TAGNUM_ FROM SR_MGMNTINDEXES WHERE TABLE_ = 'CLIENTES_DBF' ORDER BY IDXNAME_, TAGNUM_	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:37: DROP INDEX CLIENTES_DBF_xNombre ON `clientes_dbf` /* Create Index */	
09/13/08 21:36:37: COMMIT	
09/13/08 21:36:38: CREATE INDEX CLIENTES_DBF_xNombre ON `clientes_dbf` (`nombre`,`sr_recno`) /* Create regular Index */	
09/13/08 21:36:38: COMMIT	
09/13/08 21:36:38: INSERT INTO SR_MGMNTINDEXES (TABLE_,SIGNATURE_,IDXNAME_,PHIS_NAME_,IDXKEY_,IDXFOR_,IDXCOL_,TAG_,TAGNUM_) VALUES ( 'CLIENTES_DBF','20080913 21:36:38 A','CLIENTES_DBF','CLIENTES_DBF_xNombre','\"NOMBRE\",\"SR_RECNO\"','',NULL,'xNombre','000001' )	
09/13/08 21:36:38: COMMIT	
09/13/08 21:36:38: COMMIT	
09/13/08 21:36:38: SELECT TABLE_,SIGNATURE_,IDXNAME_,IDXKEY_,IDXFOR_,IDXCOL_,TAG_,TAGNUM_ FROM SR_MGMNTINDEXES WHERE TABLE_ = 'CLIENTES_DBF' ORDER BY IDXNAME_, TAGNUM_	
09/13/08 21:36:38: SELECT A.* FROM `clientes_dbf` A  ORDER BY  A.`nombre`, A.`sr_recno`  LIMIT    12 /* GoTop */	
09/13/08 21:36:48: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  WHERE A.`sr_recno` = 1  /* GoTo */	
09/13/08 21:36:48: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  ORDER BY  A.`nombre`, A.`sr_recno`  LIMIT    12 /* GoTop */	
09/13/08 21:37:11: COMMIT	
09/13/08 21:37:11: INSERT INTO `clientes_dbf` ( `nombre`, `direccion`, `telefono`, `logico`, `date`, `edad`, `sr_deleted` ) VALUES ( 'ALFREDO ARTEAGALICONA', 'MI DOMICILIO', '112223333333', 0, NULL, 50.00, ' ' ) 	
09/13/08 21:37:11: SELECT LAST_INSERT_ID()	
09/13/08 21:37:11: COMMIT	
09/13/08 21:37:11: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  WHERE ( ( ( A.`nombre`  <= 'ALFREDO ARTEAGALICONA' OR A.`nombre` IS NULL ) AND A.`sr_recno`  <= 1) OR ( ( A.`nombre`  < 'ALFREDO ARTEAGALICONA' OR A.`nombre` IS NULL ) )  ) ORDER BY  A.`nombre` DESC, A.`sr_recno` DESC  LIMIT    32 /* Skip BWD */	
09/13/08 21:37:11: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  WHERE ( ( A.`nombre`  >= 'ALFREDO ARTEAGALICONA' AND A.`sr_recno`  >= 1) OR ( A.`nombre`  > 'ALFREDO ARTEAGALICONA' )  ) ORDER BY  A.`nombre`, A.`sr_recno`  LIMIT    32 /* Skip FWD */	
09/13/08 21:37:23: COMMIT	
09/13/08 21:37:23: UPDATE `clientes_dbf` SET `sr_deleted` = 'T'  WHERE `sr_recno` = 1	
09/13/08 21:37:23: COMMIT	
09/13/08 21:37:23: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  WHERE ( (  1 = 1  AND A.`sr_recno`  >= 0) OR ( A.`nombre` IS NOT NULL )  ) ORDER BY  A.`nombre`, A.`sr_recno`  LIMIT    32 /* Skip FWD */	
09/13/08 21:37:23: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  WHERE ( ( A.`nombre`  >= 'ALFREDO ARTEAGALICONA' AND A.`sr_recno`  >= 1) OR ( A.`nombre`  > 'ALFREDO ARTEAGALICONA' )  ) ORDER BY  A.`nombre`, A.`sr_recno`  LIMIT    32 /* Skip FWD */	
09/13/08 21:37:26: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  WHERE ( (  1 = 1  AND A.`sr_recno`  >= 0) OR ( A.`nombre` IS NOT NULL )  ) ORDER BY  A.`nombre`, A.`sr_recno`  LIMIT    32 /* Skip FWD */	
09/13/08 21:37:26: SELECT A.`nombre`, A.`direccion`, A.`telefono`, A.`edad`, A.`sr_recno`, A.`sr_deleted` FROM `clientes_dbf` A  WHERE ( ( A.`nombre`  >= 'ALFREDO ARTEAGALICONA' AND A.`sr_recno`  >= 1) OR ( A.`nombre`  > 'ALFREDO ARTEAGALICONA' )  ) ORDER BY  A.`nombre`, A.`sr_recno`  LIMIT    32 /* Skip FWD */	
09/13/08 21:37:27: COMMIT	

Posted: Sun Sep 14, 2008 3:04 am
by Alfredo Arteaga
Ruben, es una buena idea hacer un documento de SQLWIN. Empecemos por explicar como funciona, no entiendo (soy medio burro).

duda

Posted: Sun Sep 14, 2008 4:34 am
by Arvisnet
Saludos a todos, es una excelente idea el hacer SQLwin o como se llame, solo una peque duda, como se usa?
para probarlo que hay que hacer?... ir probando las funciones que menciona antonio?.. con tablas SQL o con dbfs?.. perdon pero no entiendo.
:oops:
habra a la par un ejemplo sencillo para ir siguiendo el paso como por ejemplo:

miprograma.prg
funcion main()

InstanciarObetoConeccion (o como sea abrir la base de datos)
AbrirlasTblas
usar algun query para traer la info o realizar algun requierimiento de datos a la tabla
hacerles un APPEND,DELETE,ETC

Cerrarlaconeccion.
Return nil

y asi vamos probando las nuevas funciones, la velocidad del acceso alos datos etc.

sorry, pero baje el prg y luego lo compilo y...

Saludos AVS

Posted: Sun Sep 14, 2008 6:18 pm
by Antonio Linares
Descarga sqlwin.prg y construye un EXE con él:

buildx.bat sqlwin

Posted: Mon Sep 15, 2008 3:21 pm
by Francisco Horta
Probando y obtengo estos errores

Unresolved external '_HB_FUN_USRRDD_RDDDATA'
Unresolved external '_HB_FUN_USRRDD_AREADATA'
Unresolved external '_HB_FUN_UR_SUPER_ERROR'
Unresolved external '_HB_FUN_UR_SUPER_SETFIELDEXTENT'
Unresolved external '_HB_FUN_UR_SUPER_ADDFIELD'
Unresolved external '_HB_FUN_UR_SUPER_OPEN'
Unresolved external '_HB_FUN_UR_SUPER_CLOSE'
Unresolved external '_HB_FUN_USRRDD_GETFUNCTABLE'

salu2
paco