Página 1 de 1

Autoincremento no me funciona

Publicado: Sab Oct 13, 2018 6:28 pm
por PolarBear
Saludos Clarioneros

Estoy haciendo un desarrollo nuevo en Clarion, empleando como motor a MSSQL. En una de las tablas (RECIBOS) tengo una columna llamada Folio, la cual, marque como llave única y con autoincremento, para que me sirva como ID principal y Folio

La cosa es que al generar con los templates la conocida Browse-Forma, intento insertar un registro, y todo funciona aparentemente bien (Folio = 1), lleno los demas datos etc. Pero si por alguna razon CANCELO la forma, la siguiente vez que intento agregar un registro, el sistema ha insertado un registro en blanco con el folio que habia intentado apartar

Como saben, el template de Clarion, cuando ponemos AutoINC, lo que hace es insertar un registro en la base y cambiar el request de Insert a Change, pero si yo cancelo, el mismo template BORRA el folio, para que siga disponible

¿No funciona esta conducta en MSSQL?

Desde ya, gracias por su ayuda

Re: Autoincremento no me funciona

Publicado: Lun Oct 15, 2018 1:09 pm
por Mauricio
No dejes que sea Clarion el que genere el autoincremento, es para problemas. Para eso tienes el IDENTITY en SQL y lo único que debes hacer es recuperar el valor insertado.

Re: Autoincremento no me funciona

Publicado: Lun Oct 15, 2018 7:23 pm
por PolarBear
Saludos Mauricio

Gracias por tu consejo, lo voy a tomar en cuenta y quitaré lo de autoincremento para hacerlo manualmente. Lo mas raro es que en otra aplicacion, donde empleo el ODBC para MySQL, el template funciona de manera correcta !

Re: Autoincremento no me funciona

Publicado: Mar Oct 16, 2018 9:49 am
por Mauricio
Yo seteo el campo como IDENTITY en SQL. En el dct de Clarion le pongo IsIdentity = TRUE y le podés setear el SCOPE_IDENTITY para que te devuelve el último agregado. El problema con Clarion es ese, si tenés el auto-increment te crea ese registro fantasma y puede llegar a ser un problema. Me pasó que una tabla tenía otra clave única, no sé si el nombre del cliente, entonces al crear el registro lo creaba en blanco (no null). Si otro usuario intentaba crear el registro al mismo tiempo fallaba porque no podía haber 2 registros con ese nombre en blanco.
Clarion es muy lindo pero cuando es tan general, da problemas.