![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
![]() ![]() No en serio. Porqué no utilizas un campo autoincremental (en cada BD tiene un nombre distinto). Todas las Bases de Datos tienen un sistema para generar automáticamente estos números, de forma que el sistema se encarga de generar el "siguiente número" cada vez que se inserta un nuevo registro, sin que tú tengas que programar nada y sin que se repitan.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#2
|
|||
|
|||
|
OH gracias Neftali por la respuesta, la verdad me hubiese ayudado mucho, pero el problema es que necesito luego ingresar el detalle de la venta, el cual usa como clave foranea, el codigo de venta, y usando el campo autoincremental, no tengo como recuperar el codigo de venta generado por la base de datos.
pense en, luego de ingresar la venta, hacer un select a la tabla para sacar el codigo, PERO si hubiese otra transaccion del mismo tipo en ese momento, el codigo recuperado podria no pertenecer a la venta realizada. wenu ojala exista alguna forma de obtener ese codigo que genera la BD, dentro de una misma transaccion (asi, me podria asegurar que nadie insertase otro elemento hasta que termine de sacar el codigo generado :S) si alguien tiene otra sugerencia se agradece Última edición por lalomon fecha: 30-10-2006 a las 15:51:31. |
|
#3
|
||||
|
||||
|
Cita:
Y segundo, dependiendo de cómo hagas el SELECT y cómo tengas configuradas las transacciones (o mejor dicho el nivel de aislamiento de estas) no deberías tener problemas en recuperar el valor insertado.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#4
|
|||
|
|||
|
gracias por responder neftali ^^
estoy trabajando con mysql 4 y me conecto via ODBC, el problema que tengo es el siguiente, la insercion de la venta es una consulta SQL, en esta se genera el codigo de venta, pero el ingreso del detalle de la venta, es otra consulta, para la cual es necesario tener el codigo de venta para asociarlo. pense en realizar un select a la venta(luego de ingresarla), para obtener el codigo que genero la BD, y en base a esto realizar el ingreso del detalle, pero si alguien ingresa otra venta, entre la insercion de la venta, y la ejecucion de la consulta para obtener el codigo de la venta, se generara un enrredo entre las ventas, recuerda que lo que estamos generando es la clave primaria, por lo que si nos es desconocida, no tenemos como obtener con un 100% de certeza la tupla asociada a esta. pd1: como son puntos de ventas no es raro que tenga muchos ingresos de ventas al mismo tiempo pd2: cada consulta SQL en si, es una transaccion, pero podria unir 2 consultas SQL para que kedaran como una sola transaccion bloquenado el acceso a la BD hasta que finalice su ejecucion? si se puede tendriamos el problema resuelto .pd3:Muchas gracias por reponder mis preguntillas ^^ |
|
#5
|
||||
|
||||
|
Cita:
Revisa los niveles de aislamiento de las transacciones. Puede ser que te interese utilizar un nivel serializable en ese punto para asegurar que no existe operaciones entre la inserción y la consulta (de todos formas mucho cuidado con los niveles muy restrictivos).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
|||
|
|||
|
mmm el problema mi amigo es que estoy trabajando en MySql 4, por lo que no es posible crear procedimientos almacenados.
con respecto al aislamiento de la transacion, no me preocupa demasiado, ya que una vez realizada la insercion, identificada por un codigo unico, las siguientes tareas realizadas, realtivas a esta insercion, se identificaran con ese unico codigo(por eso es tan importante el no perderlo). wenu seguire buscando alguna otra solucion gracias por las ideas ![]() |
|
#7
|
||||
|
||||
|
Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas | adaypr | C++ Builder | 1 | 05-09-2006 11:56:33 |
| comprobar datos en DBgrid | coleleon | OOP | 1 | 11-12-2005 13:28:49 |
| ubicar archivo, con datos sacados de base de datos | Giniromero | Varios | 19 | 20-10-2005 16:23:02 |
| Asignar valor a un campo en una base de datos | jdattoli | Conexión con bases de datos | 3 | 12-10-2005 20:59:02 |
| Reto Para Expertos En Base De Datos Y Tipos De Datos.... (blob) | frankmch | Conexión con bases de datos | 2 | 08-09-2003 19:44:52 |
|