Foros del Web » Programando para Internet » ASP Clásico »

utilizar TRANSACTION con asp

Estas en el tema de utilizar TRANSACTION con asp en el foro de ASP Clásico en Foros del Web. Hola a todos tengo problemas al realizar un update masivo, la solucion que me dieron fue agregar una instruccion en la pagina...("SET TRANSACTION USE ROLLBACK ...
  #1 (permalink)  
Antiguo 04/11/2004, 11:26
 
Fecha de Ingreso: septiembre-2001
Mensajes: 56
Antigüedad: 23 años, 8 meses
Puntos: 0
utilizar TRANSACTION con asp

Hola a todos

tengo problemas al realizar un update masivo, la solucion que me dieron fue agregar una instruccion en la pagina...("SET TRANSACTION USE ROLLBACK SEGMENT ejrolback"), pero no funciono, no se por que , cualquier ayuda gracias

saludos


codigo espero


<%
SET comm = SERVER.CREATEOBJECT("ADODB.CONNECTION")
comm.OPEN(bd_STRING)

comm.BeginTrans

'--------------------------------------------------------------------------

SET TRANSACTION USE ROLLBACK SEGMENT ejrolback;
'--------------------------------------------------------------------------

Dim rs_para
Dim rs_para_numRows
Set rs_para = Server.CreateObject("ADODB.Recordset")
rs_para.ActiveConnection = bd_STRING
rs_para.Source = "select* from libros"
rs_para.CursorType = 0
rs_para.CursorLocation = 2
rs_para.LockType = 1
'response.Write(rs_para.source)
rs_para.Open()
rs_para_numRows = 0

cont=clng(cont)
cont=0
Do while not rs_para.EOF
ejemplo("update set xx where codigo = 2322")
comm.execute(ejemplo)
rs_para.MoveNext()
Loop
rs_para.Close()
Set rs_para = Nothing


'--------------------------------------------------------------------------------

if error <> 0 then
comm.Rollback %>


<script language=javascript>
alert("problemas");
</script>
<%
else
comm.CommitTrans
%>
<script language="JavaScript">
alert('ok');

</script><%
end if %>
__________________
Ariqueño
  #2 (permalink)  
Antiguo 04/11/2004, 11:31
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Las transacciones con ASP se manejan por medio del objeto Connection:

Set adoConn = Server.CreateObject("adodb.connection")
sConn = "Driver={SQL Server};SERVER=10.1.1.1; DATABASE=NomDB;UID=user;PWD=psw"
adoConn.IsolationLevel=256
adoConn.Open sConn
adoConn.BeginTrans
.....
IF (adoConn.Errors.Count > 0) Then
adoConn.RollBackTrans
Else
adoConn.CommitTrans
End IF

Saludos
  #3 (permalink)  
Antiguo 04/11/2004, 11:49
 
Fecha de Ingreso: septiembre-2001
Mensajes: 56
Antigüedad: 23 años, 8 meses
Puntos: 0
GRACIAS POR RESPONDER.

Ok yo tambien ocupo el objeto conexion , pero la gente que maneja la base de datos "oracle" creo una nuevo rollback especial para mi pagina pero yo nose donde colocar esta instruccion ;
"SET TRANSACTION USE ROLLBACK SEGMENT ejrolback;"

SALUDOS
__________________
Ariqueño
  #4 (permalink)  
Antiguo 05/11/2004, 09:06
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
ups, no había reconocido la instruccion hasta que mencionaste Oracle. Bueno, haciendo analógia con MSSQL, denerías de utilizarlo mediante commandos (de uno en uno, lo cual no sería óptimo) o bien mediante un SP.
Por ejemplo, si se tiene un SP "dBorrar" con estas lineas:

Código:
    set transaction use rollback segment nombre; 
    delete from nomtabla where ... etc
    commit;
Debería ser llamado así desde ASP:
Código:
set cmd2=server.CreateObject("ADODB.command")
Set cmd2.ActiveConnection = obj_adoConn		
cmd.CommandText = "dBorrar"
cmd.CommandType=adCmdStoredProc
cmd.Execute
Supongo que con eso solucionas tu problema.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:53.