0

正しい結果を返すために、以下の strSQL 行を適切にコーディングする方法を考えていました。

SELECT * FROM Reviews WHERE Month=x AND Year=x

月と年をハードコーディングします。

アクセスデータベースを使用してaspページを実行しています。上記の文字列を (月と年をハードコーディングして) 試しましたが、うまくいきませんでした。

サーバー ログ ページがダウンしているため、そのように確認することはできません。ブラウザーが完全なエラー メッセージを表示するように設定されていても、表示されるのは 500 - 内部サーバー エラーだけです。

コード化した月と年に一致するレコードの Reviews テーブルを確認しました。2012 年 3 月のレコードがかなりあるので、いくつかの結果が表示されるはずです。

月と年のフィールドは、ユーザーが手動で入力したデータベース内の別個のフィールドです。

<%
Set adoCon = Server.CreateObject("ADODB.connection")' initialize connection
Set ors = Server.CreateObject("ADODB.RecordSet")' initialize record set

adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("database.mdb")

Const COLUMN_COUNT = 1
strSQL = "SELECT * FROM Reviews WHERE Month= 'March' AND Year= '2012'"

coll_width=100/COLUMN_COUNT

column = 0 ' initialize counter

ors.open strSQL,adoCon,1,1  'open record set

Do While Not ors.EOF
If column = 0 Then Response.Write "<TR>" 

%>
<td width="<%=coll_width%>%" valign="top" ><table width="100%" border="0">
<tr    > 
<td height="100%">
<div class="extra_container post reviews">
<figure> <img src="images/<% = oRs.Fields("Image") %>" width="200" alt=""> </figure>
<div>
<div class="date">
<% = oRs.Fields("ReleaseDate") %>
</div>
<div class="title">
<% = oRs.Fields("Artist") %> - <% = oRs.Fields("Album") %>
</div>
<% = oRs.Fields("Teaser") %>
<br>
<a href="cdreviewsmain.asp?pl=<% = oRs.Fields("ID") %>" class="button">more</a> </div>
</div>
</td>
</tr>
</table>
</td>
<% column = column + 1 
If column = COLUMN_COUNT Then 
Response.Write "</TR>" & vbNewLine 
column = 0 ' start over! 
End If 
oRS.MoveNext 
Loop %>
<% ors.Close 'Close the database connection
'SET ors = Nothing 'Clean up after yourself
%>
</table>

他にもいくつか問題がありますが、一度に 1 つずつ並べ替えます。

あなたが与えることができるかもしれないどんな助けにも感謝します,

イアン

4

2 に答える 2

2

MONTH と YEAR は SQL の予約語です... [ ] でエスケープしてみてください

SELECT * FROM Reviews WHERE [Month]=x AND [Year]=x

「x」が数値の場合は数字を、文字列の場合は引用符で囲みます。Access では、SQL Server では二重引用符と単一引用符を使用します。

ところで、MS Access がインストールされている場合は、[クエリ/表示] タブを使用して条件を作成し、対応する SQL コードを調べてヒントを得ることができます。

于 2013-04-26T16:35:03.680 に答える