Power Builder - IMPORTAR ARCHIVO Y ACTUALIZAR BASE DE DATOS

   
Vista:

IMPORTAR ARCHIVO Y ACTUALIZAR BASE DE DATOS

Publicado por Piero (51 intervenciones) el 21/11/2007 15:36:55
SEÑORES FORISTAS
TENGO UN PEQUEÑO INCONVENIENTE AL REALZIAR UN PROCESO CON MI SISTEMA QUE ESTOY TRABAJANDO EN POWER 9
LO QUE QUIERO ES IMPORTAR UN ARCHIVO .DBF, PERO QUE ANTES DE IMPORTAR Y ACTUALIZAR LOS DATOS DE MI TABLA CAMBIE EL ESTADO DE UNO DE LOS CAMPOS PARA MI EJEMPLO DE NACIONAL A INTERNO ( '0' A '1' RESPECTIVAMENTE)

PERO NO SE COMO HACERLO PORQUE NO ME SALE
1.DEBO CAMBIAR EL ESTADO UN CAMPO PARA TODOS LOS REGISTROS
2.ACTUALIZAR O INGRESAR REGISTROS SEGUN SEA EL CASO QUE HAYA EN EL ARCHIVO QUE IMPORTO

MI CODIGO ES EL SIGUIENTE:

string ls_archivo
string ls_codigo,ls_descripcion
long ln_i,ln_rowcount,ln_find,ln_contador,ln_total_registros,ln_inicial
datastore lds_lista

if not gf_openfile(ls_archivo,'*.txt','*.Dbf') then return

dw_lista.setfilter("")
dw_lista.filter()
lds_lista = create datastore
lds_lista.dataobject = dw_lista.dataobject
lds_lista.settransobject(sqlca)

ln_rowcount = lds_lista.importfile(ls_archivo)

If ln_rowcount <= 0 Then
messagebox('No hay registros a procesar',ln_rowcount)
destroy lds_lista
return
end if

ln_total_registros = dw_lista.rowcount()
//****CAMBIO TODOS LOS REGISTROS DE ESTADO
for ln_inicial = 1 to ln_total_registros
dw_lista.object.tipo_destino[ln_inicial] = '1'
next

For ln_i = 1 To ln_rowcount

ln_find = dw_lista.find("lower(trim(codigo)) = '"+lower(trim(lds_lista.object.codigo[ln_i]))+"'",1,ln_total_registros )
If ln_find = 0 then
ln_contador ++
lds_lista.rowscopy(ln_i,ln_i,primary!,dw_lista,9999,primary!)
Else
dw_lista.object.cod_pais[ln_find] = lds_lista.object.cod_pais[ln_i]
dw_lista.object.cod_departamento[ln_find] = lds_lista.object.cod_departamento[ln_i]
dw_lista.object.cod_provincia[ln_find] = lds_lista.object.cod_provincia[ln_i]
dw_lista.object.tipo_destino[ln_find] = lds_lista.object.tipo_destino[ln_i]
end if

Next

IF Dw_Lista.Update() = -1 Then
RollBack using sqlca;
Messagebox('Error','Los registros no se han guardado ~nPuede intentarlo otra vez')
Else
Commit Using Sqlca ;
messagebox('Importación','se procesaron ('+string(ln_rowcount)+') registros y se importaron ('+string(ln_contador)+') nuevos registros.')
End IF

dw_lista.Retrieve()
Destroy lds_lista


ESPERO SUS RESPUESTAS Y ME PUEDAN AYUDAR CON ESTO
ME DESPIDO
GRACIAS DE ANTEMANO
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

Respuesta...

Publicado por Leopoldo Taylhardat (690 intervenciones) el 21/11/2007 16:24:19
Saludos...

Te envié la respuesta con la otra pregunta en el foro...

Te recomiendo que no trabajes con datastore porque en caso de error no te manda el mensaje...
Trabaja para probar con datawindow...
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