出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

パラメータ?   としろうさん [2003/04/08 16:06:46] [3248]
  Re:パラメータ?   bbbさん [2003/04/08 18:00:26] [3249]
    Re:パラメータ?   としろうさん [2003/04/08 21:35:18] [3250]

[3248] パラメータ?
投稿者:としろうさん 2003/04/08 16:06:46
こんにちわ
初歩的なご質問で大変もうしわけございません
現在FrontPageとAccess2000でデータベースを表示させるPage作成しています。
ウイザードを遣い、データベースを表示させるべくカンニングして
おります
その際、パラメータが少なすぎます。5 を指定してください
とブラウザに表示されます
FrontPageが生成したソースは下記のものです(長いです。申し訳ありません)

<html>

<head>
<title>filebbs query</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>

<body>

<p> </p>

<table width="100%" border="1" height="250">
<tr>
<td height="16"><b>filebbs query</b></td>
</tr>
<!--webbot bot="DatabaseRegionStart" startspan s-columnnames="filebbs query"
s-connstring="DSN=filebbs" b-tableformat="TRUE"
s-sql="SELECT filebbs.id, filebbs.name, filebbs.title, filebbs.comment, filebbsquery.filename&lt;br&gt;FROM filebbs query;"
local_preview="&lt;tr&gt;&lt;td colspan=5 bgcolor=&quot;#FFFF00&quot; align=&quot;center&quot; width=&quot;100%&quot;&gt;&lt;font color=&quot;#000000&quot;&gt; Web ブラウザを使って Web サーバーからこのページが取り出されない場合、データベース領域によるプレビューは行われません。 Web ページからページが取り出されるとき、次の表によって、各クエリー結果の行に対して 1 行表示されます。&lt;/td&gt;&lt;/tr&gt;"
preview clientside s-DefaultFields
s-NoRecordsFound="返されたレコードはありません。" i-MaxRecords
i-ScriptTimeout tag="BODY" s-Password --><%
' フォームのパラメータをクエリー文字列に代入します。
fp_sQry = "SELECT filebbs.id, filebbs.name, filebbs.title, filebbs.comment, filebbsquery.filename FROM filebbs query;"
fp_sDefault = ""
fp_sNoRecords = "返されたレコードはありません。"
fp_iMaxRecords = 0
fp_iTimeout = 0
fp_iCurrent = 1
fp_fError = False
fp_bBlankField = False
If fp_iTimeout <> 0 Then Server.ScriptTimeout = fp_iTimeout
Do While (Not fp_fError) And (InStr(fp_iCurrent, fp_sQry, "%%") <> 0)
' 開始の引用符がある場合、終了の引用符を探します。
fp_iStart = InStr(fp_iCurrent, fp_sQry, "%%")
fp_iEnd = InStr(fp_iStart + 2, fp_sQry, "%%")
If fp_iEnd = 0 Then
fp_fError = True
Response.Write "<B>データベース領域エラー: パラメータの区切り文字が一致しません</B>"
Else
fp_sField = Mid(fp_sQry, fp_iStart + 2, fp_iEnd - fp_iStart - 2)
If Mid(fp_sField,1,1) = "%" Then
fp_sWildcard = "%"
fp_sField = Mid(fp_sField, 2)
Else
fp_sWildCard = ""
End If
fp_sValue = Request.Form(fp_sField)

' 名前の付いたフォーム フィールドが無い場合、コメントを付けます。
If (len(fp_sValue) = 0) Then
fp_iCurrentField = 1
fp_bFoundField = False
Do While (InStr(fp_iCurrentField, fp_sDefault, fp_sField) <> 0) _
And Not fp_bFoundField
fp_iCurrentField = InStr(fp_iCurrentField, fp_sDefault, fp_sField)
fp_iStartField = InStr(fp_iCurrentField, fp_sDefault, "=")
If fp_iStartField = fp_iCurrentField + len(fp_sField) Then
fp_iEndField = InStr(fp_iCurrentField, fp_sDefault, "&")
If (fp_iEndField = 0) Then fp_iEndField = len(fp_sDefault) + 1
fp_sValue = Mid(fp_sDefault, fp_iStartField+1, fp_iEndField-1)
fp_bFoundField = True
Else
fp_iCurrentField = fp_iCurrentField + len(fp_sField) - 1
End If
Loop
End If

' これによって名前の付けられたフォーム フィールドの値を見つけて、
' リテラル値の単一引用符を二重の単一引用符で代入します。
' これによって、SQL による、対になっていない単一引用符を誤認するのを防ぎます。
If (Mid(fp_sQry, fp_iStart - 1, 1) = """") Then
fp_sValue = Replace(fp_sValue, """", """""")
ElseIf (Mid(fp_sQry, fp_iStart - 1, 1) = "'") Then
fp_sValue = Replace(fp_sValue, "'", "''")
ElseIf Not IsNumeric(fp_sValue) Then
fp_sValue = ""
End If

If (len(fp_sValue) = 0) Then fp_bBlankField = True

fp_sQry = Left(fp_sQry, fp_iStart - 1) + fp_sWildCard + fp_sValue + _
Right(fp_sQry, Len(fp_sQry) - fp_iEnd - 1)

' 代入された値の後にある新しいカレントの位置を変更します。
fp_iCurrent = fp_iStart + Len(fp_sValue) + Len(fp_sWildCard)
End If
Loop

If Not fp_fError Then
' ウィザードから入力した接続文字列を使用します。
On Error Resume Next
set fp_rs = CreateObject("ADODB.Recordset")
If fp_iMaxRecords <> 0 Then fp_rs.MaxRecords = fp_iMaxRecords
fp_rs.Open fp_sQry, "DSN=filebbs"
If Err.Description <> "" Then
Response.Write "<B>データベース エラー: " + Err.Description + "</B>"
if fp_bBlankField Then
Response.Write " 1 つ以上のフォーム フィールドが空白です。"
End If
Else
' レコードが無い場合をチェックします。
If fp_rs.EOF And fp_rs.BOF Then
Response.Write fp_sNoRecords
Else
' 結果セットの各レコードと取り出すループを開始します。
Do Until fp_rs.EOF
%>
<!--webbot bot="DatabaseRegionStart"
i-checksum="61704" endspan -->

<tr>
<td height="222"><!--webbot bot="DatabaseResultColumn" startspan
s-columnnames="filebbs query" s-column="filebbs query" b-tableformat="TRUE" clientside
local_preview="データベース : filebbs query"
preview="データベース : filebbs query" --><%
If Not IsEmpty(fp_rs) And Not (fp_rs Is Nothing) Then Response.Write CStr(fp_rs("filebbs query"))
%>
<!--webbot bot="DatabaseResultColumn"
i-checksum="51850" endspan --> </td>
</tr>
<!--webbot bot="DatabaseRegionEnd" startspan b-tableformat="TRUE" local_preview preview
clientside tag="BODY" --><%
' くり返しレコードのループを閉じます。
fp_rs.MoveNext
Loop
End If
fp_rs.Close
' 接続エラーをチェックする IF 条件を閉じます。
End If
' フォーム フィールドのパラメータを置き換えるときの解析エラーをチェックする IF 条件を閉じます。
End If
set fp_rs = Nothing
%>
<!--webbot bot="DatabaseRegionEnd" i-checksum="42539" endspan
-->

</table>
</body>
</html>
データベースには5つのフィールドがあります
そのことかなっとはおもわれるのですが・・
お気づきの点がございましたらよろしくお願いいたします

[3249] Re:パラメータ?
投稿者:bbbさん 2003/04/08 18:00:26
> fp_sQry = "SELECT filebbs.id, filebbs.name, filebbs.title, filebbs.comment, filebbsquery.filename FROM filebbs query;"

ぱっと見にこれだと思うけど。
1.filebbsqueryというテーブルが定義されていない
2.filebbsとqueryの結合方法が不明

# FrontPageってこんなソースを生成するん?

[3250] Re:パラメータ?
投稿者:としろうさん 2003/04/08 21:35:18
お世話になります
filebbsqueryはちょっと私の方で
打ってしまいました
ご放念ください
基本的にはFrontPageからのものです
もう一度修正してテストします
ありがとうございました
> > fp_sQry = "SELECT filebbs.id, filebbs.name, filebbs.title, filebbs.comment, filebbsquery.filename FROM filebbs query;"
>
> ぱっと見にこれだと思うけど。
> 1.filebbsqueryというテーブルが定義されていない
> 2.filebbsとqueryの結合方法が不明
>
> # FrontPageってこんなソースを生成するん?



TreeBBS For ASP V.0.1.3
Program By YasNet