PDA

Ver la Versión Completa : id del registro


mantraxer21
29-09-2010, 18:12:56
Estimados:

estoy trabajando con DataSet y tdbedit (varios), uno de ellos se llama TXTATENCION y quiero que al momento de hacer click en "Nuevo Registro" me aparesca en "TXTATENCION" (el número del registro nuevo de la base de datos)

Estoy con Firebird.


Espero me puedan orientar.

Gracias

Saludos

ecfisa
29-09-2010, 18:36:45
Hola.

No sé como incrementas el campo: On New Record, On Post u On Server, así que posiciono en el último, muestro el próximo y luego añado. (CAMPO_ID es el nombre del campo incremental en el ejemplo).

Ejemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin
IBDataSet1.Last;
TXTATENCION.Text:= IntToStr(IBDataSet1.FieldByName('CAMPO_ID').AsInteger + 1);
IBDataSet1.Append;
end;


Saludos. :)

mantraxer21
30-09-2010, 02:09:51
Muchas Gracias ecfisa, la verdad lo tengo el nuevo registro en "On Post", en el generator me muestra value 2954, pero al momento de hacer la rutina que me mostraste me aparece valor (en el txt) 197 ... pork no coincide con el valor que tiene el generador ???

Saludos

ecfisa
30-09-2010, 20:29:57
Hola mantraxer.

Tendría que ver el código con que obtenes los valores del generador...

De todos modos, si tu intención es mostrar códigos consecutivos mediante el generador, no es buena idea.
Los generadores están diseñados para ser seguros en un entorno multiusuario. Su función es asegurar la unicidad
del código y un número identificador desaparece luego de generado.

¿ El por que de esto ?
Supongamos que el usuario A obtiene el identificador 1089 y seguido el usuario B recibe el 1090.
Luego el usuario A se arrepiente y hace un rollback...
Es imposible obtener una secuencia de numeros consecutivos sin brechas utilizando generadores.

Aca te pongo unos links que tratan sobre generadores en Firebird, hay mucho más en la web si querés profundizar.

Link1 (http://www.firebirdsql.org/manual/generatorguide-basics.html#generatorguide-basics-whatis)
Link2 (http://www.marteens.com/trick24.htm)


Saludos.:)

mantraxer21
30-09-2010, 20:35:30
Muchas Gracias.

la verdad si lo había pensado, pero el cliente queria algo que ya había tenido y obviamente se está modificando, es solo un tema de costumbre...

Muchas gracias, revisaré los Link !