2017-12-04 1 views
0

Ich möchte Update-Funktion in einem webbasierten System mit Classic ASP, um den Benutzer ihre Anwendung abzubrechen zu ermöglichen. Ich verwende keine Löschfunktion, da einige Daten beibehalten werden sollen und einige Daten in NULL gesetzt werden. Diese Funktion ermöglicht es dem Benutzer auch, einen Datumsbereich in einem Formular auszuwählen, um seine Anwendung zu löschen.Wie einige Daten in SQL Server in Null für Classic ASP zu aktualisieren

Es wird kein Fehler angezeigt, aber die Daten werden nicht aktualisiert, wenn Sie im Formular auf Abbrechen klicken.

Dies ist der Code:

<%param="keyid=" & session("keyid") 
idkehadiran=request("idkehadiran") 
nokpl=request("nokpl") 

set SimpanRS=server.CreateObject("adodb.recordset") 
sql="select * from tms_kehadiran where nokpl='"&nokpl&"' and (tarikh >= '"&tarikh&"' and tarikh <= '"&hinggaTarikh&"')" 
SimpanRS.open sql,connehr,3,3 

while not SimpanRS.EOF 
SimpanRS("alasan")="" 
SimpanRS("nokpPenyelia")="" 
SimpanRS("kelulusan")=null 
if isnull(SimpanRS("datecreated")) then 
SimpanRS("datecreated")=now 
end if 
SimpanRS("lastupdate")=now 

SimpanRS.update 
SimpanRS.movenext 
wend 
SimpanRS.close 
set SimpanRS=nothing 
%> 

Ich weiß nicht, was der Fehler mit diesem Code ist. Kann mir jemand helfen ?

+0

Ich sehe nichts falsch, also würde ich die üblichen Debugging-Schritte vorschlagen: zuerst, 'response.write sql' und dann diese SQL-Anweisung direkt ausführen - gibt es die Zeile (n) zurück, die es sollte ? Wenn ja, dann fügen Sie 'response.write' in der while-Schleife hinzu, um zu sehen, ob es sich um eine Schleife handelt - wenn nicht, dann könnte Ihre Verbindungszeichenfolge (' connec') das Problem sein. – Martha

+0

Eine andere Sache zu überprüfen - öffnet '' 3,3 'ein aktualisierbares Recordset? Wenn nicht, würde ich einen Laufzeitfehler auf der 'SimpanRS.update' Zeile erwarten ... – Martha

+0

Ich bin neu in Classic ASP, kann ich wissen, auf welchen Teil des Codes ich schreiben kann response.write ? @Martha – NAA

Antwort

-1

Anstatt die RS zu schleifen. Sie sollten GetRows() verwenden.

Danach können Sie die Daten im SQL-Server aktualisieren, während Sie das Array durchlaufen.

+0

Und wie genau schlagen Sie vor, er aktualisieren Sie die Daten in SQL-Server * ohne * Schleifen der RS? – Martha

+0

Wie funktioniert GetRows()? – NAA