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

Leer registros ordenados para hacer UPDATE

Estas en el tema de Leer registros ordenados para hacer UPDATE en el foro de ASP Clásico en Foros del Web. Hola, necesito hacer una consulta ordenada en asp para que me lea los datos ordenados por un campo. Si pongo GROUP BY O DISTICNT me ...
  #1 (permalink)  
Antiguo 01/06/2012, 10:45
 
Fecha de Ingreso: abril-2012
Mensajes: 20
Antigüedad: 12 años, 8 meses
Puntos: 1
Leer registros ordenados para hacer UPDATE

Hola, necesito hacer una consulta ordenada en asp para que me lea los datos ordenados por un campo. Si pongo GROUP BY O DISTICNT me lo ordena pero a la hora de hacer el UPDATE no me funciona bien. ALguien sabe como solucionarlo? dejo el codigo por si acaso alguien quiere ayudarme.
Gracias de antemano

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/Conexion1.asp" -->
<%
Dim NotaUni
Dim NotaUni_numRows
Dim np
Dim fac
Dim uni
Dim nif
Dim opc
Dim nu

'Hacemos una consulta a tabla Nota Universidad con todos sus datos

Set NotaUni = Server.CreateObject("ADODB.Recordset")
NotaUni.ActiveConnection = MM_Conexion1_STRING
NotaUni.Source = "SELECT FACULTAD, UNIVERSIDAD, [NOTA UNIVERSIDAD], [NIF Solicitante], [NUM PLAZAS] FROM [Nota Universidad]"
NotaUni.CursorType = 0
NotaUni.CursorLocation = 2
NotaUni.LockType = 1
NotaUni.Open()

NotaUni_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
NotaUni_numRows = NotaUni_numRows + Repeat1__numRows
%>
<html >
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
background-color: #B7C8E5;
}
-->
</style></head>

<body>

<p>/<%'Vamos leyendo cada fila y guardando los datos en variables para luego hacer consultas y actualizaciones*/%>

<% While ((Repeat1__numRows <> 0) AND (NOT NotaUni.EOF)) %>


<%fac=(NotaUni.Fields.Item("FACULTAD").Value)%>
<%uni=(NotaUni.Fields.Item("UNIVERSIDAD").Value) %>

<%nu=(NotaUni.Fields.Item("NOTA UNIVERSIDAD").Value)%>
<%opc=(NotaUni.Fields.Item("OPCION").Value)%>
<%nif=(NotaUni.Fields.Item("NIF Solicitante").Value)%>
<%np=(NotaUni.Fields.Item("NUM PLAZAS").Value)%>


<% ' Si el numero de plazas en esa Universidad/Facultad es mayor que cero, se actualiza CANDIDATO=true, SUPLENTE=false para ese NIF leido que solicita esa facultad y esa universidad
If (np>0) Then

set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_Conexion1_STRING
Command1.CommandText = "UPDATE [Nota Universidad] SET CANDIDATO=true, SUPLENTE=false WHERE UNIVERSIDAD= '" + Replace(uni, "'", "''") + "' AND FACULTAD='" + Replace(fac, "'", "''") + "' and [NIF Solicitante] = '" + Replace(nif, "'", "''") + "';"
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
Command1.ActiveConnection.Close

'Despues debe actualizar el numero de plazas en esa Universidad/Facultad, restando una en todas las filas donde aparezca
set Command2 = Server.CreateObject("ADODB.Command")
Command2.ActiveConnection = MM_Conexion1_STRING
Command2.CommandText = "UPDATE [Nota Universidad] SET [NUM PLAZAS]='" + Replace(np-1, "'", "''") + "' WHERE UNIVERSIDAD= '" + Replace(uni, "'", "''") + "' AND FACULTAD='" + Replace(fac, "'", "''") + "' ;"

Command2.CommandType = 1
Command2.CommandTimeout = 0
Command2.Prepared = true
Command2.Execute()
Command2.ActiveConnection.Close

End if
%>

<%'Por el contrario, si el numero de plazas es igual a cero, hacemos un UPDATE para ese NIF con SUPLENTE=true y CANDIDATO=false en la Universidad/Facultad leidas en esa fila*/%>
<%
If (np=0) Then
set Command3 = Server.CreateObject("ADODB.Command")
Command3.ActiveConnection = MM_Conexion1_STRING
Command3.CommandText = "UPDATE [Nota Universidad] SET CANDIDATO=false, SUPLENTE=true WHERE UNIVERSIDAD= '" + Replace(uni, "'", "''") + "' AND FACULTAD='" + Replace(fac, "'", "''") + "' and [NIF Solicitante] = '" + Replace(nif, "'", "''") + "';"
Command3.CommandType = 1
Command3.CommandTimeout = 0
Command3.Prepared = true
Command3.Execute()
Command3.ActiveConnection.Close

End if
%>

<%' Y cuando acaba de leer una fila, le indicamos que pase a la siguiente mediante el siguiente codigo:*/%>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
NotaUni.MoveNext()
Wend
%>


</body>
</html>
<%
NotaUni.Close()
Set NotaUni = Nothing
%>


Necesito que me lea primero la [NOTA UNIVERSIDAD], despues por FACULTAD Y UNIVERSIDAD

Etiquetas: asp, recordset, registros, server, tabla, update, campos
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 10:34.