Aplicación en red, se pierden datos. ¿Cómo solucionarlo?
Publicado por Li (1 intervención) el 16/07/2019 20:04:04
Buenas tardes.
Desarrollé una aplicación en VB.Net que ya hace unos años está funcionando en una red que se ha ampliado últimamente. El motor de base de datos que utilizo el SQL Server 2014. Siempre he luchado con el problema de los números (de facturas en este caso) duplicados, pero lo he podido solucionar.
El problema que ahora tengo es que de vez en cuando, cuando toma un nuevo número de la base de datos para asignar a una nueva factura, no toma el último sino el anterior y ha este le suma 1, por lo que el número queda duplicado en el sistema, pero al guardar (como el número de factura es el identificador de la tabla) esos datos no se guardan sino que se pierden.
A continuación copio el código que obtiene el número de factura (función general) y la sentencia Sql para este caso:
Sentencia SQL: "SELECT NroFactura FROM Venta ORDER BY NroFactura DESC"
Detallo también la conexión a la base de datos:
Espero puedan ayudarme. Desde ya muchas gracias.
Desarrollé una aplicación en VB.Net que ya hace unos años está funcionando en una red que se ha ampliado últimamente. El motor de base de datos que utilizo el SQL Server 2014. Siempre he luchado con el problema de los números (de facturas en este caso) duplicados, pero lo he podido solucionar.
El problema que ahora tengo es que de vez en cuando, cuando toma un nuevo número de la base de datos para asignar a una nueva factura, no toma el último sino el anterior y ha este le suma 1, por lo que el número queda duplicado en el sistema, pero al guardar (como el número de factura es el identificador de la tabla) esos datos no se guardan sino que se pierden.
A continuación copio el código que obtiene el número de factura (función general) y la sentencia Sql para este caso:
Sentencia SQL: "SELECT NroFactura FROM Venta ORDER BY NroFactura DESC"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Function ProximoNumero(SQL As String) As Long
Dim Conexion As SqlConnection, Trans As SqlTransaction
Conexion = Interfaz.Instancia.Conectar()
Dim Comando As New SqlCommand
Dim Resultado As SqlDataReader
Dim Proximo As Long
Try
Comando = Conexion.CreateCommand
Trans = Conexion.BeginTransaction
Comando.CommandText = SQL
Comando.Transaction = Trans
Resultado = Comando.ExecuteReader
If Resultado.Read Then
Proximo = 1 + Resultado.Item(0)
End If
Resultado.Close()
Trans.Commit()
Conexion.Close()
Catch ex As Exception
Trans.Rollback()
MsgBox(ex.Message)
End Try
Return Proximo
End Function
Detallo también la conexión a la base de datos:
1
ConnString = "Data Source=192.168.1.19,1433;Initial Catalog=BD;User ID=x;Password=x;"
Valora esta pregunta


0