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