2012-07-31 192 views
0

我已經寫下面是應該基於兩個參數查詢字符串值

  1. 整數值(船的ID)
  2. 字符串值(從DB搜索碼片SHIP名稱)。

但使用下面的代碼,我可以使用SHIP名稱從數據庫獲取數據,即使用第二種情況。但無法使用SHIP的ID搜索數據。

以下是代碼片段。任何對這些幫助非常感謝。

nIMO = sql_ship_friendly(request.querystring("nIMO")) 
if IsNumeric(nIMO) = false then 
    nIMO = "" 
else 
    nIMO = cInt(nIMO) 
end if 

sVessel = sql_ship_friendly(UCase(request.querystring("sVessel")),10) 


if not nIMO = "" then 

    'search based on vessel id 




sql = "SELECT IMO_NBR, VESSEL_NM, COALESCE(SHIP_TYP,'0') AS SHIP_TYP, COALESCE(DWT_WT, 0) AS DWT_WT, COALESCE(YEAR_BUILT_NBR, 0) AS YEAR_BUILT_NBR FROM RSP_VESSEL_VW WHERE ACTIVE_IND='Y' AND IMO_NBR = 7723948" 
    Set db1 = Server.CreateObject("ADODB.Connection") 
    db1.Open GV_VIEW_DB_String 
    Set rs = db1.Execute(sql) 
    Set dbl = nothing " 

elseif not sVessel = "" then 

    'search based on vessel number 


sql = "SELECT IMO_NBR, VESSEL_NM, COALESCE(SHIP_TYP,'0') AS SHIP_TYP, COALESCE(DWT_WT, 0) AS DWT_WT, COALESCE(YEAR_BUILT_NBR , 0) AS YEAR_BUILT_NBR FROM RSP_VESSEL_VW WHERE VESSEL_NM LIKE '"&SVESSEL&"%' AND ACTIVE_IND='Y'" 

'的Response.Write設置SQL DB1 = 的Server.CreateObject( 「ADODB.Connection」)db1.Open GV_VIEW_DB_String 集RS = db1.Execute(SQL)設置DBL =什麼

+0

感謝ü先生.. :) – 2012-07-31 18:28:45

回答

0

如果你的第一個情況下,你已經把下列

SQL =「SELECT IMO_NBR,VESSEL_NM,COALESCE(SHIP_TYP, '0')AS SHIP_TYP, COALESC E(DWT_WT,0)AS DWT_WT,COALESCE(YEAR_BUILT_NBR,0)AS YEAR_BUILT_NBR FROM RSP_VESSEL_VW WHERE ACTIVE_IND = 'Y' 和IMO_NBR = 7723948"

但我可以看到你正在使用的尼莫 perameter在查詢中。把它和你應該得到的結果..

你可以使用它像IMO_NBR = nIMO或類似。

+0

我使用SQL QRY這樣的:SQL =「SELECT IMO_NBR,VESSEL_NM,COALESCE(SHIP_TYP, '0')AS SHIP_TYP,COALESCE(DWT_WT,0)AS DWT_WT,COALESCE(YEAR_BUILT_NBR,0)AS YEAR_BUILT_NBR FROM RSP_VESSEL_VW WHERE ACTIVE_IND ='Y'AND IMO_NBR =&nIMO「.....但這不是woking ..然後我試圖通過在SQL中對nIMO進行硬編碼來執行它。也沒有工作...... @ Jigar熊貓 – 2012-07-31 18:29:17

0

問題是你的SQL語句中沒有使用nIMO變量作爲搜索條件的地方。忘記使用IsNumeric(nIMO)= false ...改用isNull函數。嘗試這個。

if not isnull(request.querystring("nIMO")) then 
    nIMO = cInt(nIMO) 
    sql = "SELECT IMO_NBR, VESSEL_NM, COALESCE(SHIP_TYP,'0') AS SHIP_TYP," &_ 
      "COALESCE(DWT_WT, 0) AS DWT_WT, COALESCE(YEAR_BUILT_NBR, 0) AS " &_ 
      "YEAR_BUILT_NBR FROM RSP_VESSEL_VW WHERE ACTIVE_IND='Y' AND " &_ 
      "IMO_NBR =" & nIMO 
    ... 
    ... 
    ... 
end if