2017-07-17 12 views
0

を返さない私持っているMS SQL 2012に接続されているASP古典ページで、次のスクリプト:T-SQLクエリは、NULL、レコード

<% 
Set Conn = Server.CreateObject("ADODB.Connection") 
Set RS = Server.CreateObject("ADODB.RecordSet") 
Conn.Open SQLCFG 
RS.CacheSize = 40 

RS.Open "SELECT * FROM orders WHERE (final_trackingnumber = '' OR final_trackingnumber = NULL OR final_trackingnumber LIKE '%BACK%') AND status <> 'pp' ORDER BY dt DESC", Conn, adOpenKeyset,adLockReadOnly 
%> 

<table width="100%" cellpadding=7> 
    <tr> 
    <td class='theading'></td> 
     <td class='theading'>Invoice Number</td> 
     <td class='theading'>Billed to</td> 
     <td class='theading'>Date Ordered</td> 
     <td class='theading'>Shipping Type</td> 
     <td class='theading'>Tracking ID</td> 
     <td class='theading'>Status</td> 
    </tr> 
    <tr> 
<% 

Do While Not RS.EOF 

%> 
    <tr> 
     <td align=center bgcolor="<%=bcolor%>" class="trow"><font face="arial" size=2><a href="process-view.asp?aid=<%=RS("aid")%>&oid=<%=RS("oid")%>"><B>View Order</b></A></td> 
     <td bgcolor="<%=bcolor%>" class="trow"><%= RS("oid") %></td> 
     <td bgcolor="<%=bcolor%>" class="trow"><%= RS("b_name") %></td> 
     <td bgcolor="<%=bcolor%>" class="trow"><%= RS("dt") %></td> 
     <td bgcolor="<%=bcolor%>" class="trow"><%= RS("shippingtype") %></td> 
     <td bgcolor="<%=bcolor%>" class="trow"><%= RS("final_trackingnumber") %></td> 
     <td bgcolor="<%=bcolor%>" class="trow"></td>  
    </tr> 

<% 
RS.MoveNext 
Loop 
%> 
</table> 
<% 
Rs.Close 
Conn.Close 
%> 

は、私は、クエリは、MS SQL管理で正しく実行するために取得することができます私がASPページでそれを実行すると、 "final_trackingnumber = NULL"のレコードは返されません。列にNULLを持つレコードを返すクエリには何が必要ですか?下記の提案では、final_trackingnumber IS NULLを使用する必要があると述べていますが、これはADOではサポートされていません。

答えて

5

これは、値がNULLであるかどうか確認するとき、あなたは=または<>比較演算子を使用することはできません、TSQLで

final_trackingnumber is NULL 
+0

私はそれ以前にしようとした値は、同様にNULLをチェックしてください等しくないとスクリプトが実行されないだろうことを確認している同じく場合myColumn IS NULLだろう。私は非常に単純なクエリを試みました: 'code' RS.Open" SELECT * FROM orders where final_trackingnumberがNULL ORDER BY dt DESC "、Conn、adOpenKeyset、adLockReadOnly'code'です。私はこれがADOのためのクエリのフォーマットの問題かもしれないと思う?私が得る唯一のエラーは、 "内部サーバーエラーが発生したためページを表示できません" –

0

以下のように「nullである」である必要があります。彼らは常に真ではない値(不明または偽)を返します。

このベストapprochはあなたには、いくつかの列が

WHERE (myValue IS NOT NULL) AND (myValue <> someOtherValue) 
関連する問題