Power Builder - AYUDA URGENTE

 
Vista:
sin imagen de perfil

AYUDA URGENTE

Publicado por Edgar (87 intervenciones) el 26/12/2007 21:03:57
Amigos del foro tengo una consulta algo urgente que realizar, desde ya muchas gracias por su valiosa ayuda.

Tengo una aplicacion realizada en power builder 9 con base de datos sql 2000.

PROBLEMA.- Tengo varios eventos de usuario que me permiten grabar, eliminar, buscar,
insertar.... Mi problema radica cuando recupero un registro y modifico un campo no me permite hacerlo pues esa transaccion ya existe....

Me pueden ayudar indicandome por favor que programacion falta o que evento falta y donde puedo programar eso.......
Si me ayudan con el scipt les estoy muy agradecido....

LES ENVIO LA PROGRAMACION DEL EVENTO ue_grabar, ue_insertar, ue_eliminar y ue_buscar

ue_eliminar
dw_1.deleterow(0)

ue_buscar
string ls_sqltemporal

If dw_1.Rowcount( ) = 0 Then Return
dw_1.accepttext( )
ls_sqltemporal = is_sqloriginal

if Not Isnull(dw_1.getitemstring(dw_1.getrow( ) , "num_cheque") ) Then
ls_sqltemporal = ls_sqltemporal + " and num_cheque = '" +dw_1.getitemstring(dw_1.getrow( ), "num_cheque") + "'"
end if

if Not Isnull(dw_1.getitemnumber(dw_1.getrow( ), "cliente") ) Then
ls_sqltemporal = ls_sqltemporal + " and cliente = " + string(dw_1.getitemnumber(dw_1.getrow( ), "cliente"))
end if

dw_1.setsqlselect( ls_sqltemporal)
dw_1.retrieve( )
dw_1.setsqlselect( is_sqloriginal)


ue_grabar

//Declaracion de Variables
integer li_banco, li_existe
string ls_cheque,ls_cuenta
long ll_aux

dw_1.accepttext( )

//SELECT COUNT PARA LAS COLUMNAS, BANCO, NUMRERO DE CHEQUE, CTA BANCARIA
li_banco = dw_1.getitemnumber( 1, "banco")
ls_cheque = dw_1.getitemstring( 1, "num_cheque")
ls_cuenta = dw_1.getitemstring( 1, "cta_bancaria")

SELECT count(*)
INTO :li_existe
FROM cartera
WHERE cartera.banco = :li_banco AND
cartera.num_cheque = :ls_cheque AND
cartera.cta_bancaria = :ls_cuenta;

If Sqlca.sqlcode < 0 Then
Messagebox("Error","Fallo el Select de cartera",StopSign!)
return
End If


if li_existe > 0 then
Messagebox("Error","Ya Existe esta Transaccion",StopSign!)
return
else
if dw_1.update(true,false ) < 0 then
messagebox("error","erro" + sqlca.sqlerrtext,stopsign!)
rollback;
return
end if
end if

commit;
messagebox("Informacion","Exito")



ue_insertar

long ll_fila

ll_fila = dw_1.insertrow( 0)
dw_1.setrow( ll_fila)
dw_1.scrolltorow( ll_fila)
dw_1.setitem( 1, "clave", usuario)
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:AYUDA URGENTE

Publicado por Lan (52 intervenciones) el 27/12/2007 18:16:39
El Error que te sale, corresponde al objecto sqlca??..o al mensaje que estas validando con la variable li_existe ??
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:AYUDA URGENTE

Publicado por samuel (52 intervenciones) el 27/12/2007 20:41:54
Hola Edgar,

se me ocurre que la comprobación de si existe banco/cheque/cta_bancaria deberias hacerla sólo si se modifica uno de esos tres campos, ya que si modificas cualquier otro campo de la datawindow que no sea uno de esos tres, nunca te dejará hacer el update.
Puedes utilizar una variable booleana para saber cuando tienes que hacer la comprobación banco/cheque/cta_bancaria y cuando no.

Un saludo y felices fiestas.
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