Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2012, 10:45
musu143
 
Fecha de Ingreso: abril-2012
Mensajes: 20
Antigüedad: 12 años, 1 mes
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