OK entonces creo que deberias ir por el lado de crear la columna 16 con el CRC
de las otras 15
Saludos
PabloC
----- Original Message -----
From: Consultas
To: gufa List Member
Sent: Thursday, January 04, 2007 5:42 PM
Subject: [gufa] Re: [gufa] Re: [gufa] Re: Re: [gufa] Re: Método para comparar
filas
Hola Pablo. Los numeros ya estan generados y guardados en la tabla. No puedo
volver a generarlos. Solo tengo que ponerme a depurar la tabla.
Saludos.
Emiliano Saldivia
[EMAIL PROTECTED]
----- Original Message -----
From: PabloC
To: gufa List Member
Sent: Jueves 4 de Enero de 2007 16:50
Subject: [gufa] Re: [gufa] Re: Re: [gufa] Re: Método para comparar filas
Estaba por proponer exactamente lo mismo
Porque no controlas al generar los numeros
Saludos
PabloC
----- Original Message -----
From: Mauricio Pistiner
To: gufa List Member
Sent: Thursday, January 04, 2007 4:06 PM
Subject: [gufa] Re: Re: [gufa] Re: Método para comparar filas
Que tal:
SI la generación de los 100000 numeros es al crear la tabla..
Generando las filas en cursor o tabla local o vista remota reflejada en
cursor local e indexando :
****************************
local aNums(15)
select numeros
index on str(num01)+str(num02)+...+str(num15) tag nums
for i=1 to 100000
wait nowait windows str(i)
* generar 15 numeros al azar...
for j=1 to 15
nNum(j) = generarnum()
endfor
* ordenar la secuencia...
ascan(aNums)
cExpr = ''
* armar expresion para buscar...
for j=1 to 15
cExpr=cExpr+str(aNums(j))
endfor
seek cExpr
if found()
* secuencia existente...
* reintentar...
else
INSERT INTO numeros values (aNums(1),aNums(2),..,aNums(15))
endif
endfor
********************************
saludos
Mauricio
El día 4/01/07, Consultas <[EMAIL PROTECTED]> escribió:
Gracias David y Feliz Año.
Lo que pasa es que yo no uso SQL Server, y es una tabla dbf de vfox que
contiene 100.000 filas de 15 numeros cada uno, para realizar un sorteo.
Lo que tengo que hacer es depurar aquellas filas que contengan los
mismos numeros, para borrarlas y asi descartarlas, para evitar los duplicados.
Yo lo que estoy probando y buscando es una manera de hacerlo rapido y
eficientemente, por eso hacia referencia a que si convenia revisar cada fila
haciendo un select-sql contra las demas filas para ver si existen filas
iguales, o si conviene usar un scan...endscan.
Espero que se entienda.
Saludos y Felicidades...
Emiliano Saldivia
Armstrong - Santa Fe
[EMAIL PROTECTED]
----- Original Message -----
From: David Brunstein
To: gufa List Member
Sent: Jueves 4 de Enero de 2007 15:18
Subject: [gufa] Re: Método para comparar filas
Hola Emiliano,
Que tal?
La respuesta depende como es que tenes que hacer la comparacion, que
son esos 15 numeros? Por que no tenes una sola columna con los 15 numeros?
Lo mejor para este tipo de cosas es mandarle el laburo al motor de
base de datos.
Me parece que 100.000 filas no deberia ser mucho laburo para un motor
de base de datos, como el SQL Sever; de todas formas, trataria las excepciones.
Me refiero a que si lo normal es que "alguno" de los 15 se repita, haria el
WHERE por equal; si lo normal es que la "mayoria" de los 15 se repita, haria el
WHERE por not equal.
Si metes los 15 numeros en una tabla (con 15 filas, en vez de 15
columnas) podrias hacer un SELECT con la clausula NOT IN SELECT o la clausula
IN SELECT (de nuevo lo que sea la excepcion).
Ahora, bien, si vos lo que tenes que hacer es eliminar los
duplicados, entonces directamente te conviene trabajar un SELECT hasta que te
devuelve SOLO las filas que tenes que borrar, y despues reemplazas la palabra
SELECT por DELETE. Con una sola sentencia SQL resolverias el asunto.
My 2 micro-cents.
Feliz 2007,
Davo.
On 1/4/07, Consultas <[EMAIL PROTECTED] > wrote:
Hola a todos. Estoy haciendo un programa en vfox para generar 15
numeros al azar, que los guardo en una tabla con 15 columnas.
Lo que necesito es buscar la forma de comparar estos grupos de 15
numeros, con otras filas, para evitar que existan grupos repetidos.
En total son 100.000 filas, y necesito saber de que manera puedo
hacer mas rapida la comparacion y depuracion. O sea, si tengo que usar alguna
sentencia Select SQL o armar un bloque de codigo con SCAN...ENDSCAN e ir
verificando las coincidencias.
Saludos.
Emiliano Saldivia
Armstrong (Sta. Fe)
[EMAIL PROTECTED]
--------------------------------------------------------------
avast! Antivirus: Mensaje saliente limpio.
Base de datos de Virus (VPS): 0701-0, 03/01/2007
Comprobado el: 04/01/2007 02:24:29 p.m.
avast! - copyright (c) 1988-2007 ALWIL Software.
--
=======================
David Brunstein
Java/PB/VFP Developer
Winnipeg, MB
Canada
Before I speak, I have something important to say.
Antes de dar mi discurso, tengo algo importante que decir.
Antes de dar meu discurso, tenho algo importante para dizer.
G.M.
------------------------------------------------------------------
avast! Antivirus: Mensaje saliente limpio.
Base de datos de Virus (VPS): 0701-0, 03/01/2007
Comprobado el: 04/01/2007 03:37:07 p.m.
avast! - copyright (c) 1988-2007 ALWIL Software.
--------------------------------------------------------------------------
avast! Antivirus: Mensaje entrante limpio.
Base de datos de Virus (VPS): 0701-0, 03/01/2007
Comprobado el: 04/01/2007 05:34:37 p.m.
avast! - copyright (c) 1988-2007 ALWIL Software.
----------------------------------------------------------------------------
avast! Antivirus: Mensaje saliente limpio.
Base de datos de Virus (VPS): 0701-0, 03/01/2007
Comprobado el: 04/01/2007 05:42:32 p.m.
avast! - copyright (c) 1988-2007 ALWIL Software.
__________ Información de NOD32, revisión 1956 (20070104) __________
Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com