La Web del Programador: Comunidad de Programadores
 
    Pregunta:  66007 - OBTENER IDENTITY AL INSERTAR REGISTRO EN UN DW EN PB 12.5
Autor:  Erick Morales
Hola a todos.

Tengo una aplicación que corre sin problemas en PB 9.02. En ella, inserrto un registro con un datawindow y recupero el identity sin problema. En este datawindow, siempre, sólo se inserta un registro a la vez. El código es el siguiente:

ll_codigo = dw_casos.Update(true,false)
ll_codigo <> 1 then
RollBack;
else
Commit;
ll_folio = dw_casos.GetItemNumber(1, "sop_id")
end if

El caso es que al migrarlo a PB 12, la obtención del identity ya no funciona, La columna identity es sop_id. Ya intente regenerando, exportando e importando,cambiando las

banderas del update, también, colocando en una varable el valor del registro que devuelve el InsertRow(0) y nada. El registro si se inserta en la tabla, pero no logro que el DW me

devuelva el identity. No creo que sea cuestión de mi código, pues en PB 9, al insertar el registro, visualmente, como usuario, puedo ver el valor debido a que la columna de sop_id

está visible en la ventana. Hice una prueba desde el ambiente de diseño (painter) del DW, ejecuto directamente el DW para insertar el registro y tampoco coloca nada en la columna del identity. En PB 9 si lo hace también en el painter.

Utilizo :
MS SQl Server 2000 (no lo puedo cambiar por que mi cliente no puede migrar al 2008)
PB 12. Build 6807

Nota: Probé usando la versión express R2 del SQL 2008 con el painter del DW y tampoco se puede.

Espero puedan ayudarme.

Saludos y gracias de antemano.

Erick.

  Respuesta:  Gabriel MAnilla
si no mal recuerdo el IDENTITY es parecido a un AUTOINCREMENT no es asi!

ya intentaste cacharlo como string, recuerda q el scop de las variables puede varias de una versión a otra posiblemente

no creo que sea error de la DW ya que esta te recupera el dato tal cual de BD, el problema esta en que la forma como lo estar tu sacando de la DW esta fuera de rango, y es que no dices que error te marca o que valor te da.

checate esa forma y posiblemente funcione!