Aplicación cliente servidor

Hola puedes decirme como hago una aplicación cliente servidor, en vb con ado, como hago para que varios usuarios modifiquen la base de datos al mismo tiempo, te explico tengo varias tablas una de ellas cliente que tiene su id y cada usuario toma esta id y le añade 1, el problema es que cuando dos usuarios tratan de modificar la misma tabla en el mismo instante da un conflicto que hago
Gracias por tu tiempo y tu paciencia

1 respuesta

Respuesta
1
Cuál sería el dato que modifican ya que solamente tendrías que utilizar una de las propiedades de la conexión que hagas para que trabaje transacciones mediante el uso del ADO, esto lo consigues con algo así (considerando con como una conexión):
Con. Begintran
Todo el código que requieras de trabajo en la base de datos, solo el que modifique, agregue o borre datos.
En caso de que todo sea correcto,
con.committran
Caso contrario,
con. Rollbacktran
Con lo anterior idnicas que se inicie la transacción, se confirme o se aborte, es decir, que el servidor de base de datos vaya guardando los datos nuevos, modificados o borrados en el segmento temporal de información y al final los confirme y deje como datos reales o que deje todo como estaba si existe algún problema.
Vale gracias otra consulta, tengo una proceso como el siguiente
public sub execute(sql)
conexión.BeginTrans
conexion.Execute sql
conexion.CommitTrans
DoEvents
end sub
entonces en el boton nuevo cuando yo ejecuto la intruccion
sql="insert into cliente values (" & text1 &",... &")"
La duda es en que momento tengo que calcular la nueva id del cliente de tal manera que otro usuario no tome el mismo id
Antes de ejecutar el insert, tienes que generar otra sentencia parecida a la siguiente:
sql = "Select max(idcliente) + 1 from cliente"
Ejecutas la sentencia
dim rs as new ADODB.Recordset
set rs = new ADODB.recordset
with rs
.activeconnection = conexion
.open sql
end with
' tomando en cuenta un campo numérico
dim variable as integer
variable = rs.fields(0)
rs.close
set rs = nothing
Con lo anterior tenemos el número o valor máximo de la clave de cliente incrementada en uno.
Este valor lo utilizas para la sentencia de trabajo que tienes:
sql="insert into cliente values (" & variable & ",... &")"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas