SQL - que pasa

 
Vista:

que pasa

Publicado por hullo (3 intervenciones) el 20/11/2006 04:24:41
hola que es lo que sucede aqui le doy los dos valores a los text desoyes de doy
click al command1 y me sale el msgbox de que se ha modificado el registro
pero luego trato de insertar otro y me sale un error de que no se pueden iniciar
mas transacciones en esta seccion y tambien cuando trato de cerrar el form
me sale un error en tiempo de ejecucion

Dim conexion As Connection
Dim rstConsulta As Recordset

Private Sub Command1_Click()
Dim variable As String
On Error GoTo Error1

variable = "INSERT INTO MAESTRO(CLAVEMAESTRO, NOMBRE) " + _
"VALUES('" + Text1.Text + "'," _
+ "'" + Text2.Text + "')"

conexion.BeginTrans
conexion.Execute variable

MsgBox "El registro se ha modificado"
Exit Sub
Error1:
MsgBox Err.Description
conexion.RollbackTrans
End Sub

Private Sub Form_Load()
'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;
'Initial Catalog=PRACTICA;Data Source=PENTIUM4

Set conexion = New Connection
conexion.Provider = "SQLOLEDB.1"
conexion.Properties("Integrated Security") = "SSPI"
conexion.Properties("Persist Security Info") = False
conexion.Properties("Initial Catalog") = "PRACTICA"
conexion.Properties("Data Source") = "PENTIUM4"
conexion.Open
End Sub

Private Sub Form_Unload(Cancel As Integer)
conexion.Close
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:que pasa

Publicado por Felipe (15 intervenciones) el 20/11/2006 17:12:34
HOLA LO QUE TIENES QUE HACER ES UN PROCEDIMIENTO ALMACENADO
ASI INTENTALO CON MODIFICAR Y TE TIENE QUE DAR PERO EL CODIGO PARA LA TRANSACCION LO UTILIZAS DESDE EL FORMULARIO???? LA VERDAD DESCONOCIA ESE METODO Y PARA MI NO ES MUY FIABLE ES MEJOR QUE CREES QUE PROCEDIMIENTO Y LO LLAMES DESDE EL FORMULARIO SI QUIERES ME ESCRIBES UN MAIL Y TE MANDO UN EJEMPLO POR EJEMPLO TAMBIEN VEO QUE EL GRABAS DESDE EL FORMULARIO Y LLAMAS LA CONEXION DESDE EL MISMO FORMULARIO Y NO ES MUY RECOMENDABLE MAS QUE TODO POR VELOCIDAD LO MEJOR ES QUE HAGAS UNA CLASE PARA QUE SIEMPRE QUE TENGAS LLAMAR LA CONEXION NO LA TENGAS QUE VOLVER A ESCRIBIR EN CADA UNO DE LOS FORMUALRIOS DE TU APLICACION BUENO CUALQUIER DUDA YA SABES

BUENO PERO NECESITO QUE ME DEVUELVAS UN FAVOR JEJE SOY NUEVO EN SQL 2005 Y NECESITO RESTAURAR UNA COPIA DE SEGURIDAD QUE CREE EN SQL 2000 HAY MANERA DE HACERLO NOSE UN PROGRAMA CUALQUIER INFORMACION ESTARE MUY AGRADECIDO

CREATE Procedure spGrabarUsuario

@pCedula VarChar(12),
@pNombre VarChar(30),
@pApellidos VarChar(30),
@pTelefono VarChar(30)

As

BEGIN TRANSACTION
IF NOT exists (select * from tblusuarios where cedula=@pcedula)
Begin
Insert Into tblusuarios values(@pCedula,@pNombre,@pApellidos,@pTelefono)
End

If @@error<>0 goto merror
commit transaction
return(1)

merror:
rollback transaction
return(0)
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:que pasa

Publicado por Unomásnomás (36 intervenciones) el 20/11/2006 17:54:17
Yo opino que una respuesta mas simple que lo que respondió el otro colega Felipe y reusando tu codigo seria, mejor dicho que el error es debido a que en ado avisaste que el proceso se inicia (cuando usas el begintrans) pero no que termina (usando el CommitTrans) y eso es lo que al parecer has omitido osea en pocas palabras...
depues de esta linea

conexion.Execute variable

agrega Conexion.CommitTrans

espero te sirva colega...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar