Problemas con campo Id en aplicaciones en red vb6

Bueno antes que todos agradecer de ante mano por cualquier ayuda, soy nuevo en esto
Estoy realizando una programa hecho en vb6 que maneja una base de datos de sql server 2000, con la conexión a la base de datos no tengo problema, puedo agregar consultar eliminar ya sea local o desde cualquier cliente de la red, la situación es que tengo que imprimir un recibo al momento de guardar cada nuevo registro, cada registro lleva su campo ID, código único, pensé en dejar el campo ID autonumérico pero este se genera hasta cuando se ha guardado el nuevo registro, entonces no me funciona, implicaría en ir a buscar el registro luego de que se allá guardado para poderlo imprimir y yo necesito imprimirlo al momento de salvar, como puedo hacer con este campo, existe alguna forma de personalizarlo mediante algún código y que independientemente del numero de usuarios en la red que manipulen una misma tabla no entre en conflicto ya probé utilizando un contador pero me entra en conflicto.

1 Respuesta

Respuesta
1
Cuando haces el insert a la tabla le colocas un punto y coma (;) esto le indica al SQL que es el final de una instrucción y entonces le escribes: "Select @@IDENTITY" esto te devuelve el ultimo Id generado en la tabla que acabas de hacer insert, claro debes tener el campo como autonumérico.
Otra forma es "Select Insert_Identity nombretabla" y también devuelve el ultimo id generado.
Bueno pero si mi método de agregar nuevos registros es el addnew como me va a variar trabajando en red el programa
EL addNew es el método del ADO para hacer un INSERT en tu base de datos
Lo cierto es que yo no he tenido problems con campos autonuméricos en aplciaciones que son utilizadas por más de 25 personas a la vez.
Si explicas mejor que no te funciona o cual es el código en donde tienes el problema, quizás te pueda ayudar mejor.
Buenos gracias otra vez
Con el campo autonumérico no es que tenga problema en ingresado datos desde varios clientes y no hay ningún problema
Como saber el valor del ID antes de guardar cada respectivo registro esto porque tengo que imprimir un recibo cada vez que de salvar
Oye muchas gracias me funciono muy bien pero también lo intentet de esta manera y funciona de igual manera
un amigo tenia una solución y me oriento, por si acaso le sirve a otro
Function SiguienteClave(Tabla As String) As String
    On Error GoTo errorSiguienteClave
    Dim rsTmp As New Recordset
        Set rsTmp = New Recordset
    rsTmp.CursorLocation = adUseClient
    rsTmp.Open "SELECT max(cod_usuario) AS cod_usuario  FROM " & Tabla & "", Conexion1, , , adCmdText
    If IsNull(rsTmp!cod_usuario) Then
        SiguienteClave = "1"
    Else
        SiguienteClave = rsTmp!cod_usuario + 1
    End If
    rsTmp.Close
    Set rsTmp = Nothing
     Exit Function
errorSiguienteClave:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") en procedimiento SiguienteClave"
End Function
Después solo se llama a la función para obtener el ID en esta otra no necesariamente tiene que ser autonumérica la solución
muchísimas gracias por su ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas