Power Builder - Como generar autonumericos

 
Vista:

Como generar autonumericos

Publicado por Alicia (8 intervenciones) el 06/05/2004 00:29:19
Hola!
POr favor me podriàn ayudar con el siguiente problema:
Tengo un grid y deseo que al generar una nuevo insert el còdigo se incremente autonumèricamente, he realizado el siguiente select para que me obtenga el maximo de la tabla en mi botòn insert y luego incrementarlo
dw1.insertrow(0)
select dtgn_dtgncdgo
into: li_cod
fron dtgn
using sqlca;
li_cod_aux=li_cod+1
dw1.setitem(dw1.getrow(),\\\"dtgn_dtgncdgo\\\",li_cod_aux)
O por favor me podriàn dar alguna otra soluciòn no se si existe alguna propiedad dentro del edit o talvèz tengo que manejar el estado de la fila .
Ahh por cierto en mi bdd con MYSQL asigne a mi campo dtgn_dtgncdgo reset increment pero no se genera el autonumerico
Gracias por su ayuda
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:Como generar autonumericos

Publicado por David (97 intervenciones) el 06/05/2004 16:02:34
en el caso de que no haya ninguna necesidad de desplegar los codigos la cuando este insertando.. solucionas tu problema creando un trigger before insert.. o sea.. en tu trigger realizas tu select max(codigo) into xxx from tabla; y lo asignas al campo...

otra solucion seria... colocar este codigo en el updatestart de tu controldatawindow...

select max(codigo)
into: li_cod
fron tabla;
if isnull(li_cod) then li_cod = 0

for n = 1 to dw_1.rowcount()
if isnull(dw_1.getitemnumber(n, "codigo")) then
li_cod ++
dw_1.setitem(n, "codigo", ll_cod_aux)
end if
next

ya que sabemos que cuando insertamos los registros el campo codigo esta nulo.. te recomendaria que si utilizas este codigo.. no le asignes tabulación al campo.. de modo que el usuario no pueda ingresar ningun valor en él..

y otra solución seria...
en tu boton insert...

long ll_fila, ll_codigo
//para esto tu dw tiene que estar ordenado por el campo "CODIGO"

//obtenemos el ultimo nro. asignado
ll_codigo = dw_1.getitemnumber(dw_1.rowcount(), "codigo")
ll_codigo ++

ll_fila = dw1.insertrow(0)
dw1.setitem(ll_fila,"codigo",ll_codigo)

espero que alguna te sirva..

Saludos desde Paraguay.-
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