Varios usuarios haciendo Ordenes de Compra

Me pueden auxiliar en ordenes de compra utilizó sql server 2000 y vb6, tengo 3 tablas
tabla: consecutivo(alfanumérico tiene solo un campo)
A0001
Tabla: orden
no_orden: a0001 pk
No. Rasteo: klp-503
Tipo:cotizacion
fecha: 10/01/2005
Hora: 10:50:10
Solicito: manuel sandoval
Departamento: carnes
Tabla: cantidad
no: 1 pk
Pzas: 5
Descripción: tapa
Modelo: 102102
Usuario 1:
Tabla: orden
no_orden: a0002 pk
No. Rasteo: klp-503
Tipo:parte
fecha: 10/01/2005
Hora: 10:50:12
Solicito: miguel cortez
Departamento: salchicha
Tabla: cantidad
no: 2 pk
Pzas: 3
Descripción: tornillo
Modelo: 89562
Usuario 2:
Tabla: orden
no_orden: a0003 pk
No. Rasteo: klp-2020
Tipo:parte
fecha: 10/01/2005
Hora: 10:50:13
Solicito: minerva poncy
Departamento: carnes
Tabla: cantidad
no: 3 pk
Pzas: 1
Descripción: hoja
modelo: s/modelo
Usuario 3:
Tabla: orden
no_orden: a0004 pk
No. Rasteo: klp-2020
Tipo:cotizacion
fecha: 10/01/2005
Hora: 10:50:14
Solicito: martin martinez
Departamento: despacher
Tabla: cantidad
no: 3 pk
Pzas: 1
Descripción: pila
Modelo: 878885
Pero la duda es cuando tengo varios usuarios que hagan esto a la vez, en algunos casos no los inserta, por eso pido si me pueden auxiliar para que todos los datos se inserten en la base de datos

1 Respuesta

Respuesta
1
¿A qué te refieres cuando dices que los datos no se insertan?
¿Sale un error en la bd? ¿En tu aplicativo? ¿O simplemente no lo graba?
Te sugeriría que uses el Profiler para hacer una traza y ver como maneja las transacciones que envía tu aplicativo.
Cualquier consulta me envías.
Hola, gracias por tu valiosos tiempo, pero bueno es que tengo una tabla con un campo alfanumérico que es allí donde guardo el consecutivo del folio 00001, pero cunado lo guardo en otra tabla con todos los datos en ocasiones si hay varios usuarios a la vez toma el primero y los demás ingresos, entonces lo que hice es poner un error sub para que me mande que no se pueden duplicar los números de folio en la misma tabla ya cacho esta excepción. Cre o que otra vez me puse a revisarlo pero creo que mi problema es que el consecutivo lo manipulo y en código lo incremento entonces si hay tres usuarios que toman el numero de folio 00005 en pantalla pues va a tomar el pero el segundo usuario me va a decir que esta duplicado entonces lo caho y bien pero el tercero no lo va a tomar va a pasar lo mismo. Creo que para solucionarlo es que ese campo lo ponga como indexado en automático entonces cualquier usuarios que ingrese una requisición va tomar la que pero así me me causaría ningún problema o puedo hacerlo de otra manera y voy a revisar lo que me comentas uses el Profiler.
Gracias, un saludo.
La verdad es que lo recomendable es que hagas que la columna sea autonumérica para que evites estos problemas, en caso se te complique también puedes calcular el numero en el momento que el usuario confirma su transacción, y luego capturas el numero y lo mandas a las demás tablas para que completes tu transacción, ademas te sugeriría que todo el proceso lo incluyas dentro de una transacción para asegurarte que nadie más actualice mientras algún usuario confirme su operación.
Cualquier cosa me comentas.
Haber creo que ando perdida mira tengo una tablas consecutivo allí esta 00050, otra tabla requisicion y allí son los datos de la requisicion y otra tabla cantidades donde guardo las partes que solicitan, para surtir esta requisición, el problema es que las requisiciones son para multiusuariosy creo que al parecer yo lo tengo para una sola persona. Eso que conentas de bloquear que tendría que saber o no se al gun link para leer, porque creo que ya me estoy enrredando.
Gracias, por tu tiempo.
El problema se da porque tienes usuarios concurrentes a tu proceso, si puedes cambiar y eliminar esta tabla con los ids te puede aliviar un montón, si no es posible, trata que el id de la tabla consecutivo se cree cuando se confirme la transacción (cuando el usuario de guardar en el aplicativo), esto hará que bloquees la tabla y a su vez tendrás que enviar a este numero creado a las demás tablas, esto lo manejas en el mismo proceso.
Si tienes dudas debes buscar información sobre transacciones
Begin tran
end tran
Cualquier cosa me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas