2016-03-23 17 views
-1

Eski bir Klasik ASP VBscript uygulamasını destekliyorum. Kötü şansım, sunuculardaki kodu bile ayıklayamam. Komut dosyası yazdıktan sonra çıktıyı doğrudan web sayfasında görmem gerekiyor. Aşağıdaki kod, Atma 500 - Web sayfasında dahili sunucu hatasıdır. Bu kodun yanlış gittiğini bulabilir misiniz? Şimdiden teşekkürler. kodunuBaşlarken 500 - Klasik asp uygulamasında VB Komut Dosyası kullanılarak saklı bir prosedür yürütülürken dahili sunucu hatası

http://www.devx.com/tips/Tip/13399

http://stackoverflow.com/questions/36174283/executing-stored-procedure-of-sql-in-vbscript?noredirect=1#comment59989620_36174283

inşa ederken ben aşağıdaki bağlantıları izlediyseniz

http://forums.asp.net/t/1767387.aspx?how+to+call+a+stored+procedure+with+date+time+parameters+from+a+classic+asp+page

'Set Connection String to Database 
sConnect = "PROVIDER=SQLOLEDB;DATA SOURCE=SCRBNGADK00XXXX;DATABASE=SMART2XXX;UID=XXXX;PWD=XXXX;" 

' Establish connection. 
Set oConObj = CreateObject("ADODB.Connection") 
Set oCmdObj = CreateObject("ADODB.Command") 
Set Rs1 = CreateObject("ADODB.Recordset") 
oConObj.ConnectionString = sConnect 
oConObj.Open 

Set oCmdObj.ActiveConnection = oConObj 
oCmdObj.commandtype=adCmdStoredProc 
oCmdObj.CommandText = "date_diff" 

Set objParm = oCmdObj.CreateParameter("@from", adDBTimeStamp, adParamInput,, R1("LEAVE_FROM")) 
oCmdObj.Parameters.Append objParm 
Set objParm = oCmdObj.CreateParameter("@To", adDBTimeStamp, adParamInput,, R1("LEAVE_TO")) 
oCmdObj.Parameters.Append objParm 
Set objParm = oCmdObj.CreateParameter("@companycode", adVarChar, adParamInput,200, R2("COMPANY_CODE")) 
oCmdObj.Parameters.Append objParm 
Set objParm = oCmdObj.CreateParameter("@locationcode", adVarChar, adParamInput,200, R2("LOCATION_CODE")) 
oCmdObj.Parameters.Append objParm 
Set objParm = oCmdObj.CreateParameter("@hol", adInteger, adParamOutput) 
oCmdObj.Parameters.Append objParm 
set Rs1 = oCmdObj.Execute 
OutPut = oCmdObj.Parameters("@hol") 


If Not IsNull(OutPut) Then 
wscript.echo "Result :" & OutPut 
End If 

Set Rs1 = Nothing 
Set oConObj = Nothing 
Set oCmdObj = Nothing 
+0

Tam hata var mı? – Lankymart

+0

Web sayfası sadece 500 hata veriyor. Bunu sunucularımda hata ayıklayamıyorum. Sadece SP'yi çalıştırmaya çalışıyorum. – METALHEAD

+0

Ayrıca bir şey daha ''R1 (" LEAVE_FROM ")' '4/18/2016'' biçiminde iken' @'' 'datetime'' iken .... bu herhangi bir hata ile olacak? – METALHEAD

cevap

1

Buna doğru cevap tarayıcınızın etmiyor emin ardından turn on detailed error messages etmektir (ve ' ' dan numaralı yemeği yiyin. "Ayrıntılı bilgi" adı altında belirtilen detaylı hata mesajlarını saklayın. Ancak bazen sunucu üzerinde hiçbir kontrolünüz yoktur ve bunlardan herhangi birini yapamaz. Tamamen batırdın mı? Tamamen değil.

Yapabilecekleriniz, On Error Resume Next aracılığıyla hata işlemeyi kapatıp, ardından Response.Write ve Response.End aracılığıyla kodunuzu manuel olarak gerçekleştirmektir. Gerçekte

On Error Resume Next 
'Set Connection String to Database 
sConnect = "PROVIDER=SQLOLEDB;DATA SOURCE=SCRBNGADK00XXXX;DATABASE=SMART2XXX;UID=XXXX;PWD=XXXX;" 

' Establish connection. 
Set oConObj = CreateObject("ADODB.Connection") 
If err.Number <> 0 Then 
    Response.Write "Error creating connection" 
    Response.End 
End If 
Set oCmdObj = CreateObject("ADODB.Command") 
If err.Number <> 0 Then 
    Response.Write "Error creating command object" 
    Response.End 
End If 
Set Rs1 = CreateObject("ADODB.Recordset") 
If err.Number <> 0 Then 
    Response.Write "Error creating recordset object" 
    Response.End 
End If 
'etc., etc., etc. 

, muhtemelen sadece soruna neden olan şüpheli hatları sonra hata kontrolleri koyardım ve bunun yerine If err.number... bölümden onlarca ekleme, sadece saklamak böyle bir bölüm olabilir Hatayı bulana kadar aşağı doğru ilerleyin.

+1

En çok barındırılan ortamlar, iis 7.0 veya üstünü kullanacaklar, bu nedenle 'web.config' dosyasında yapılandırma sorunu yoktur. Unutmayın ki, 'web.config' Classic ASP'yi okumayan bir IIS'dir, bu yüzden IIS ayarlarını yapılandırmak için sunucuya erişimi olmayanlar için iyi bir yoldur. – Lankymart

+1

@Martha .... Değerli mesajlar için çok teşekkür ederim .. Ayrıntılı hata mesajlarını açacağım ve kodun yanlış gittiğini kontrol edeceğim .... – METALHEAD