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


0