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
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
0