Power Builder - Borrar regi repetidos antes del update en dw

 
Vista:

Borrar regi repetidos antes del update en dw

Publicado por Reyna (7 intervenciones) el 13/04/2007 17:00:41
Hola a todos

Mi problema consiste en lo siguiente;

Tengo un dw_1 que apunta a una tabla con una llave primaria numérica y los demás campos son char, y en sus propiedades del dw_1 utilizo el "Use update"
El dw_1 esta incrustado en una ventana w_miventana

En el scrip de w_miventana subo un archivo .csv en el dw_1
(El archivo cvs tiene registros repeditos)

Por ejemplo; en el registro 533 todos los campos son identicos

532 valoruno valordos
533 difuno difdos
533 difuno difdos
534 valx valx

Después de subir los datos; el dw_1 no me valida que existan registros repetidos, simplemente los sube y se visualizan. (Aún no actualizo la tabla)

En este punto necesito manipular el dw_1 para que en caso de encontrar registros idénticos, borre el(los) primero(s) y deje el último.

Con la finalidad de que al uilizar la función update del dw_1 no me envíe el error de la integridad referencial.

La solución que encontré es manipular este dw_1 con un For, pero se tarda mucho

FOR i = 1 to dw_1.RowCount()-1

i_post = i + 1

ll_cd_cve1 = dw_1.getitemnumber(i,'cd_cve')
ll_cd_cve2 = dw_1.getitemnumber(i_post,'cd_cve')

If ll_cd_cve1 = ll_cd_cve2 Then
dw_1.deleterow(i)
End If

NEXT

En resumen requiero subir los datos de un archive cvs! (considerando que tiene un promedio de 15,000 registros) en la base de datos y que sea lo más rápida posible. Si alguien tiene otra sugerencia se los agradezco mucho, la base de datos actual que utilizo es ASE 12.5 y Power Builder 9.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Borrar regi repetidos antes del update en dw

Publicado por Jorge (900 intervenciones) el 13/04/2007 19:36:36
Hola

Bueno no solo a ud.. me sucedio lo mismo te paso como lo solucione
quizas te ayude.

//Primero ordenamos
dw_1.SetSort ("Control")
dw_1.Sort()

//Filtramos registros Duplicados
dw_1.SetFilter ("Control =control[1] or control = control[-1]" ) // Duplicados
dw_1.Filter()

//Eliminamos los duplicados (usando el buffer deleted)
dw_1.RowsMove(1, dw_1.FilteredCount(), Filter!, dw_1, 1, Delete!)

//Update
etc. etc.

Saludos desde Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar regi repetidos antes del update en dw

Publicado por Reyna (7 intervenciones) el 13/04/2007 22:53:53
Hola Jorge

Te agradezco infinitimanente tu apoyo, ya lo probe y es perfecto. y como decimos los mexicanos no me digas ud. hablame de tu (disculpa mi confianza).

Saludos desde México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Borrar regi repetidos antes del update en dw

Publicado por Jorge (900 intervenciones) el 16/04/2007 12:51:35
Gracias mi cuateee..

Y venga la Tequila !!

Saludos Argentinos.!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar