2009-04-20 12 views

cevap

13

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)) 
+0

Bu hataların nasıl ele alınır? – Geshan

+0

çok zarif ve minimal vbscript - Ben bunu seviyorum! –

+0

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ı? –

11

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

+0

ASP'nin adVarchar ve adParamInput sabitlerini tanıması için bazı dosyaları eklemem gerekir mi? –

+1

Evet. İşte bu dosyanın bir bağlantısı http://www.asp101.com/articles/john/adovbs/adovbs.inc.txt –

+0

Bu suggesstion saklı yordamlar senaryosunda çok yardımcı oldu – Thanigainathan

8

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

+1 mükemmel öneri! – Abel