Birisi bana VBscript içinde Klasik ASP kullanarak parametrized bir SQL sorgusu gerçekleştirmenin en kolay yolunu gösterebilir mi?Klasik ASP'de parametrized bir SQL Sorgulaması nasıl yapılır?
Tamamlanabilir bir örnek en iyisi olurdu.
Birisi bana VBscript içinde Klasik ASP kullanarak parametrized bir SQL sorgusu gerçekleştirmenin en kolay yolunu gösterebilir mi?Klasik ASP'de parametrized bir SQL Sorgulaması nasıl yapılır?
Tamamlanabilir bir örnek en iyisi olurdu.
ADODB.Command Object:
İşte bir bağlantı var.
with createobject("adodb.command")
.activeConnection = application("connectionstring")
.commandText = "select * from sometable where id=?"
set rs = .execute(,array(123))
end with
Doğrudan adodb kullanmak yerine özel bir db erişim nesnesi kullanmanız önerilir. Bu, daha güzel bir api oluşturmanıza, test edilebilirliği geliştirmenize ve debuging/logging/profiling için kanca eklemenize olanak tanır. İkincisi, class_terminiate olayını kullanarak örtüşen rollback'lerle istek kapsamındaki işlemleri ekleyebilirsiniz. Oure db erişim nesnesi adovbs.inc
ASP üstüne yakın aşağıdaki türündeki kitaplığa bir başvuru eklemektir dahil aşağıdaki Sorgu API'si
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))
Bu hataların nasıl ele alınır? – Geshan
çok zarif ve minimal vbscript - Ben bunu seviyorum! –
Sütun sayısalsa ve değer boşsa, bu çalışmaz. Bu ADODB.Command.CreateParameter kullanmadan çalışmak için bir yolu var mı? –
Parametreli bir SQL Query'ye başvurduğunuzu varsayıyorum. Bu durumda, o zaman VBScript kodu şöyle görünecektir:
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
GÜNCELLEME: Sen sabitleri tanınması için adovbs.inc dosyasını eklemeniz gerekir. ADOVBS.inc
ASP'nin adVarchar ve adParamInput sabitlerini tanıması için bazı dosyaları eklemem gerekir mi? –
Evet. İşte bu dosyanın bir bağlantısı http://www.asp101.com/articles/john/adovbs/adovbs.inc.txt –
Bu suggesstion saklı yordamlar senaryosunda çok yardımcı oldu – Thanigainathan
Diğer bir seçenek sunar.
<!--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 bir tür kütüphanelerin listesi aşağıdadır: Sözde bu bir içerme daha iyi performansa sahiptir.
+1 mükemmel öneri! – Abel
Parametreli bir SQL sorgusuna başvuruyor musunuz? –
evet. Soruyu açıklığa kavuşturmak için gidiyor. Teşekkürler! –