![]() |
Campo Automático
Mi duda creo que es muy sencilla... quiero que un campo se complete automáticamente, es decir teniendo esta tabla
Id_producto nombre descripcion id_doc 1 cartera bla bla PRO1 Id_Producto es autonumerico, y quiero que cuando se inserte un producto con su nombre y descripcion el campo id_doc se rellene automáticamente de la siguiente manera : Literal + Id_Producto en este caso el literal es PRO. Se que se debería hacer con un trigger en la BD pero no se hacerlo (Trabajo con MySQL) asi que me gustaría saber hacerlo con Delphi. ¿en que evento de la tabla o tfield iría el seteo del campo??? --- como veis sigo siendo novato---- |
En delphi en el evento before Post, pero teniendo en cuenta que esté en modo inserción (para que solo se asigne una vez al crearse el registro, en las posteriores ediciones, que no se modifique)
Como bien dices, lo correcto sería en un trigger, el idproducto sería un generador y en el trigger sería before_Insert. Saludos |
eso ya lo había hecho y no funciona, el problema esta en que el idproducto es autoincremental, y no se le asigna número hasta después del post. Tambien lo he probado en el afterpost pero tengo que hacer un edit para meter el dato y después un post y esto generaría un bucle infinito :D Si mi dices como hacer un triger en MySQL lo intento :p de momento lo tengo solucionado lanzando un query con update del campo.... pero me gustaría dejarlo más fino....
|
No sé los componentes que usas ¿zeos? pero todos suelen tener una propiedad que dice cuando generarr el autoincremento, las opciones suelen ser usServer, usPost,usNewRecord, poniendolo en usnewRecord ya tienes disponible el autoincremento antes de guardar.
A ver si alguien puesto en MySql te echa un cable. Saludos |
Perdón por no haber contestado antes, he estado liado con otros temas ;). No utilizo componentes Zeos, utilizo ADO->MyODBC->MySQL. Y en los componentes ADO no tienen la propiedad que me comentas, lo único que he visto que se parezca es una propiedad en los Tfield que genero a partir del TADOtable que se llama AutoGenerateValue con tres posibles valores: arNone, arDefault, arAutoInc pero con eso no le dices que te genere el autoincremento antes o en el momento o posterior a la inserción de un registro... no se pensaba que esto era más fácil ....:D
|
La franja horaria es GMT +2. Ahora son las 00:22:10. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi