0

2 つのパラメーターに基づいて DB から検索することになっているコードを以下に記述しました。

  1. 整数値(SHIPのID)
  2. 文字列値(船名)。

しかし、次のコードでは、SHIP 名、つまり 2 番目のケースを使用して DB からデータを取得できます。ただし、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 Set db1 = Server.CreateObject("ADODB.Connection") db1.Open GV_VIEW_DB_String Set rs = db1.Execute(sql) Set dbl = nothing

4

2 に答える 2

0

あなたが次のように配置した最初のケ​​ースの場合

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_

しかし、クエリでnIMOペラメータを使用していることがわかります。それを置くと、結果が得られるはずです。

AND IMO_NBR=nIMOなどのように使用できます。

于 2012-07-31T07:10:49.130 に答える
0

問題は、検索条件としてnIMO変数を使用するSQLステートメントの場所がないことです。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 
于 2012-09-03T06:13:09.643 に答える