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

次ページへ渡すレコードセットの引数   nabeさん [01/07/11 21:56:38] [407]
  Re:次ページへ渡すレコードセットの引数   YasNet(管理人)さん [01/07/11 22:12:55] [409]
    Re:次ページへ渡すレコードセットの引数   nabeさん [01/07/11 22:23:03] [411]
      Re:次ページへ渡すレコードセットの引数   YasNet(管理人)さん [01/07/12 10:12:59] [414]

[407] 次ページへ渡すレコードセットの引数
投稿者:nabeさん 01/07/11 21:56:38
はじめまして。
ASPをはじめて間もないのnabeといいます。

現在、DBのデータを呼び出してWeb上に表示するプログラムをかいています。
その時にデータ数が多くなってしまう場合1ページに表示されるデータ数に制限を
設けるというような表示方法にしたいと思っています。
昨日からずっと考えたり、調べたりしてPageSize、 AbsolutePage 、PageCountといったようなものが必要だという事はわかったのですが、
サンプル通りに実行しても
*ADODB.Recordset (0x800A0BB9)
*引数が間違った型、または許容範囲外であるか、競合しています。
といったメッセージが出て上手くいきません。(1ページ目は表示されます)

ロックタイプはadLockReadOnly、カーソルタイプはadOpenDynamicがいいかなと思って試してみたのですが、だめでした。

何度試しても全くだめで本当に困っています!!
長くなりますが、以下にソースを記述します。
ご教授宜しくお願いします。
'************************************************
<%@ Language=VBScript %>
<!-- #include file="adovbs.inc" -->

<%

If Request.QueryString("NO") = "" Or Request.QueryString("NO") = 0 Then
NowPage = 1
Else
NowPage = Request.QueryString("NO")
NowPage = CInt(NO)
End If

strSql = "SELECT * FROM order by 順位"

'Connectionオブジェクト作成
Set ConnectionObj = Server.CreateObject("ADODB.Connection")

'DB接続
str = ""
ConnectionObj.ConnectionString = str
ConnectionObj.Open

'レコードセットオブジェクト作成
Set Rset = CreateObject("ADODB.Recordset")
Rset.Open strSql, ConnectionObj, 1, 3, 1

'1ページのレコード数
RSet .PageSize = 20

'現在のページ番号を代入最初は1を代入してる
if nowpage = 1 then
Rs.absolutepage = NowPage
Rs.movefirst
else
Rs.Move 20
NowPage=Rs.absolutepage
'Rs.absoluteposition = cint((NowPage * 20) +1)
end if

'全体のページ数
PageCount = Rset.PageCount

If Rset.EOF = True And Rset.Bof = True Then
' データなし
Else

Counter = 1

Do While Counter < Rset.PageSize

feild1 = Rset.Fields("feild1").Value
feild2 = Rset.Fields("feild2").Value

if Rset.EOF = Ture then
Exit Do
End If

Counter = Counter + 1
Rset.MoveNext
Loop

End If

Rset.Fields.Refresh
Rset.Close
ConnectionObj.Close

Set Rset = Nothing
Set ConnectionObj = Nothing

'NowPage=現在のページ数
Count1 = CInt(NowPage - 1)
Count2 = CInt(NowPage + 1)

With Response
If Count1 <> 0 Then
.write "<a href=このファイル名?NO=" & Count1 & ">[ 前ページ] </a>" & NowPage
Else
.write " 1 /"
End If

If Count2 < PageCount Then
.write PageCount & "<a href=このファイル名?NO=" & Count2 & ">[ 次ページ ]</a>"
Else
.write PageCount
End If
End With

%>

[409] Re:次ページへ渡すレコードセットの引数
投稿者:YasNet(管理人)さん の <ホームページ> 01/07/11 22:12:55
こんにちは YasNet です
 
> ASPをはじめて間もないのnabeといいます。
なべさんって私の知ってるなべAさんでは無いですよね(笑

> その時にデータ数が多くなってしまう場合1ページに表示されるデータ数に制限を
> 設けるというような表示方法にしたいと思っています。
> 昨日からずっと考えたり、調べたりしてPageSize、 AbsolutePage 、PageCountといったようなものが必要だという事はわかったのですが、
> サンプル通りに実行しても
> *ADODB.Recordset (0x800A0BB9)
> *引数が間違った型、または許容範囲外であるか、競合しています。
> といったメッセージが出て上手くいきません。(1ページ目は表示されます)
 
まず、どこの行で上記エラーが出ているのでしょうか?
サンプルってどこのサンプルでしょうか?
DBは何を使ってられるのでしょうか?ACCESS98とか・・・
サーバは何でしょうか?例IIS5とか98のPWSとか・・・
 
ページコントロールの基本的な考え方として、
ページを管理するか件数を管理するかの2種類あると思います。
提示されているPGでは、考え方が混在?混乱しているよう見えます。
PageSize、 AbsolutePage 、PageCountと言った物をDBのオプションで管理する場合
DBが、対応出来ないものがありますのでご注意ください。
 
DBのパラメータで動かすのではなく、一度、自分で変数管理して
今回でしたらRs.Move **といった方法でコントロールを一度勉強されると
良いとおもいますよ。
これを理解出来れば、パラメータの使い方も理解できると思いますよ
 
頑張ってくださいね。
では では

[411] Re:次ページへ渡すレコードセットの引数
投稿者:nabeさん 01/07/11 22:23:03
足りない部分が多くてすみません。
補足します。

> まず、どこの行で上記エラーが出ているのでしょうか?
エラーはレコードセットオープンのところで出ます。

> サンプルってどこのサンプルでしょうか?
色々なところで使われてるサンプルです。
ホームページだったり、本だったりです。

> DBは何を使ってられるのでしょうか?ACCESS98とか・・・
sqlです。

> サーバは何でしょうか?例IIS5とか98のPWSとか・・・
IIS5

> ページコントロールの基本的な考え方として、
> ページを管理するか件数を管理するかの2種類あると思います。
> 提示されているPGでは、考え方が混在?混乱しているよう見えます。
「あれ?何基準でやってるんだっけ?」って感じで途中で気付いてページを基準にしたつもりです。
> PageSize、 AbsolutePage 、PageCountと言った物をDBのオプションで管理する場合
response.writeで表示すると全部ちゃんとした数字が返ってくるので
対応はしてると思います。

もう一度整理して考えてみます。
ありがとうございます。

[414] Re:次ページへ渡すレコードセットの引数
投稿者:YasNet(管理人)さん 01/07/12 10:12:59
こんにちは YasNet です
 
> > まず、どこの行で上記エラーが出ているのでしょうか?
> エラーはレコードセットオープンのところで出ます。
 
多分確認は、されているでしょうが、変数のセット内容を確認してみましょう。
 
> > サンプルってどこのサンプルでしょうか?
> 色々なところで使われてるサンプルです。
> ホームページだったり、本だったりです。
 
なるほど、1つのサンプルを参考にしたわけではないのですね。
 
> > DBは何を使ってられるのでしょうか?ACCESS98とか・・・
> sqlです。
 
はて、SQLサーバ?MySQL?後者なら、出来ない事があったような・・・
 
> > サーバは何でしょうか?例IIS5とか98のPWSとか・・・
> IIS5
>
> 「あれ?何基準でやってるんだっけ?」って感じで途中で気付いてページを基準にしたつもりです。

> > PageSize、 AbsolutePage 、PageCountと言った物をDBのオプションで管理する場合
> response.writeで表示すると全部ちゃんとした数字が返ってくるので
> 対応はしてると思います。
 
値が帰ってくるだけの物もあったような・・・
 
頑張ってくださいね。
では では



TreeBBS For ASP V.0.1.3
Program By YasNet