Kann mir jemand die einfachste Möglichkeit zeigen, eine parametrisierte SQL-Abfrage mit Classic ASP in VBScript auszuführen?Wie man eine parametrisierte SQL-Abfrage auf klassischem ASP macht?
Ein kompilierbares Beispiel wäre am besten.
Kann mir jemand die einfachste Möglichkeit zeigen, eine parametrisierte SQL-Abfrage mit Classic ASP in VBScript auszuführen?Wie man eine parametrisierte SQL-Abfrage auf klassischem ASP macht?
Ein kompilierbares Beispiel wäre am besten.
Verwenden Sie das Objekt ADODB.Command.
with createobject("adodb.command")
.activeConnection = application("connectionstring")
.commandText = "select * from sometable where id=?"
set rs = .execute(,array(123))
end with
Ich würde auch raten, ein benutzerdefiniertes DB-Zugriffsobjekt zu verwenden, anstatt adodb direkt zu verwenden. Dies ermöglicht es Ihnen, eine nettere API zu erstellen, die Testbarkeit zu verbessern und Hooks für das Debugging/Logging/Profiling hinzuzufügen. Zweitens können Sie Transaktionen mit Anforderungsbereichen mit impliziten Rollbacks für Fehler hinzufügen, indem Sie das Ereignis class_terminate verwenden. Oure db Zugriffsobjekt bietet die folgende Abfrage api
call db.execute("update some_table set column=? where id=?", array(value, id))
set rs = db.fetch_rs("select * from some_table where id=?", array(id))
count = db.fetch_scalar("select count(*) from some_table where column > ?", array(value))
Wie gehe ich mit Fehlern in diesem? – Geshan
sehr elegant und minimal Vbscript - Ich mag es! –
Dies funktioniert nicht, wenn die Spalte numerisch und der Wert null ist. Gibt es eine Möglichkeit, das ohne ADODB.Command.CreateParameter zu funktionieren? –
Ich nehme an, Sie beziehen sich auf eine parametrisierte SQL-Abfrage. Wenn dies der Fall ist, dann würde der VBScript-Code wie folgt aussehen:
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "connectionstring"
SET cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = adoCon
cmd.CommandType= adCmdStoredProc
cmd.CommandText = "GetCustomerByFirstName"
cmd.Parameters.Append cmd.CreateParameter("@FirstName",adVarchar,adParamInput,50,"John")
Set Rec = cmd.Execute()
While NOT Rec.EOF
'code to iterate through the recordset
Rec.MoveNext
End While
UPDATE: Sie müssen die Adovbs.Inc-Datei aufgenommen werden für die Konstanten erkannt werden.
Hier ist ein Link: ADOVBS.inc
Muss ich eine Datei hinzufügen, damit ASP die Konstanten adVarchar und adParamInput erkennt? –
Ja. Hier ist ein Link zu dieser Datei http://www.asp101.com/articles/john/adovbs/adovbs.inc.txt –
Diese Suggestion war sehr hilfreich in gespeicherten Prozeduren Szenario – Thanigainathan
Eine weitere Option einschließlich adovbs.inc
ist ein Verweis auf die folgende Typenbibliothek in der Nähe der Spitze Ihres ASP hinzuzufügen. Angeblich hat dies eine bessere Leistung als ein gehören:
<!--METADATA TYPE="TypeLib" NAME="ADODB Type Library" UUID="00000205-0000-0010-8000-00AA006D2EA4" FILE="C:\Program Files\Common Files\System\ado\msado15.dll" VERSION="2.5" -->
Here eine Liste einiger Typbibliotheken ist.
+1 ausgezeichneter Vorschlag! – Abel
Beziehen Sie sich auf eine parametrisierte SQL-Abfrage? –
ja. werde die Frage aktualisieren, um zu klären. Vielen Dank! –