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

「Response.Write」の文字数制限   メリーさんのさるさん [2003/12/25 14:48:46] [3921]
  Re:「Response.Write」の文字数制限   暇人さん [2003/12/25 17:26:34] [3922]
    Re:「Response.Write」の文字数制限   メリーさんのさるさん [2003/12/26 12:06:38] [3923]
      Re:「Response.Write」の文字数制限   fujiさん [2003/12/26 12:28:40] [3924]
      Re:「Response.Write」の文字数制限   暇人さん [2003/12/26 13:45:02] [3925]
        お礼文です   メリーさんのさるさん [2003/12/26 23:17:50] [3927]
          Re:お礼文です   fujiさん [2003/12/27 10:26:48] [3928]
            「Response.Write」の文字数制限?   メリーさんのさるさん [2004/01/08 12:18:59] [3951]
              Re:「Response.Write」の文字数制限?   YasNet(管理人)さん [2004/01/08 14:18:56] [3952]
              Re:「Response.Write」の文字数制限?   fujiさん [2004/01/08 18:06:55] [3953]

[3921] 「Response.Write」の文字数制限
投稿者:メリーさんのさるさん 2003/12/25 14:48:46
お初によろしくお願いいたします。
本などでも探せなかったので。
「Response.Write」でクエリ結果のデータ(文章)を表示させる場合、
何文字以上は表示できないって制限がありますか?
10行程は表示されますが、それ以降は表示されません。
また、文字数制限がある場合、回避策はありますか?

[3922] Re:「Response.Write」の文字数制限
投稿者:暇人さん 2003/12/25 17:26:34
クエリ結果という事はRequest.QueryStringでとったという事ですか?
だとすればクエリにはURLは1024文字の制限がIEにはあります

上記クエリの制限に引っ掛かっていた場合、全部送る事は不可能なので
ロジックを考え直す必要があります。
フォームで送る、クッキーに保存させる。セッションに保存する
データベースなどに保存するといった代替手段をとるか

文字数を少なく送るようにする工夫が必要になります


[3923] Re:「Response.Write」の文字数制限
投稿者:メリーさんのさるさん 2003/12/26 12:06:38
暇人さん、ありがとうございます。
また、不十分な質問で申しわけありませんでした。

 Set DB = Server.CreateObject("ADODB.Connection")
 DB.Open "MyDatabase"
 Set RS = DB.Execute(q) ← q:クエリ文
 Response.Write "<td>" & RS("Contents") & "<br></td>" & vbCRLF
で、表示させています。

>クエリ結果という事はRequest.QueryStringでとったという事ですか?
>だとすればクエリにはURLは1024文字の制限がIEにはあります

基本的な事が全く解っていないのですが、URLという事は
Submitボタンで値が送られるときと同じイメージなのでしょうか?
 http://***/aaa/bbb/test.asp?Contents=〜 のような?

>上記クエリの制限に引っ掛かっていた場合、全部送る事は不可能なので
>ロジックを考え直す必要があります。
>フォームで送る、クッキーに保存させる。セッションに保存する
>データベースなどに保存するといった代替手段をとるか
>文字数を少なく送るようにする工夫が必要になります

どうりで知りたい情報をみつけられなかったはずです。
調べ方を間違えていたようですね。反省です。
本当にどうもありがとうございました。
これまでは、”関連WEBを見る””本屋での立ち読み”で
無理やり乗り切ってきましたが、やはり基本から勉強しな
おしたいと思います。
今後ともよろしくお願いいたします。

[3924] Re:「Response.Write」の文字数制限
投稿者:fujiさん 2003/12/26 12:28:40
メリーさんのおさるさん こんにちわ。

> これまでは、”関連WEBを見る””本屋での立ち読み”で
> 無理やり乗り切ってきましたが、やはり基本から勉強しな
> おしたいと思います。

私も立ち読み&WEB検索のみでプログラミングしてます。
『基本から勉強』なんて堅く考えないで、
なぜかわからないが、動いているぞ!的に楽しく作るほうがいいのではないでしょうか。(^^)



[3925] Re:「Response.Write」の文字数制限
投稿者:暇人さん 2003/12/26 13:45:02
> 暇人さん、ありがとうございます。
> また、不十分な質問で申しわけありませんでした。
>
>  Set DB = Server.CreateObject("ADODB.Connection")
>  DB.Open "MyDatabase"
>  Set RS = DB.Execute(q) ← q:クエリ文
>  Response.Write "<td>" & RS("Contents") & "<br></td>" & vbCRLF
> で、表示させています。

了解しました。
SQLの事ですね?
確かにSQL自体をクエリーといいますが。
クエリーは邦訳すれば「問い合わせ」となりますので
DBへの問い合わせ(SQL文)もクエリ
サーバーへの問い合わせ(URL)もクエリですね

さて、だとするとResponseオブジェクトに原因があるとは考えにくいですね
恐らく他の部分に原因があると思います
1、ループ等場合分けしている所で途中で止まっている
2、Response.bufferがFalseの状態であり
 途中まででTimeoutが発生し
 処理が終わったところまで表示されている
3、DBに保存されたデータがそもそもそこまでしかない
等等


[3927] お礼文です
投稿者:メリーさんのさるさん 2003/12/26 23:17:50
To:fujiさま、暇人さま

ここでこんな事を書いて叱られるかもしれませんが、
どうしてももう1度お礼を言いたいので失礼します。
次回からは決してしませんので今回の長文は許してくださいね。

To:暇人さま
 「クエリー」という言葉の意味も知りませんでしたし、
 考えた事もありませんでした。情けないですね。
 クエリー=SQL文だとしか思っていませんでした
 再びのレス、本当に感謝しております。
 残念ながら、ご指摘いただいた項目は全て当てはまっておりません。
 でも、ここ一ヶ月の疑問が少し明るくなりました。
 もう少し違う方向からも調べていきます。
 ハッキリしましたら、ここで報告させてくださいね。
 どうしても駄目なら、また投稿してしまうかもしれませんが
 その時には落ち着いて解り易くソースを載せますので。


To:fujiさま
 確かに、楽しくできる事が一番ですよね。
 それによって進み方も違う方向にいってしまうかもしれませんし。
 私は、ASPを始めて丸一ヶ月です。その前はPL/SQLとPHPずくめ
 でしたので、関数やらなにやらで、とまどい部分もありましたが
 自分が作ったものがキチンと表示されると、めちゃ嬉しいです。
 今回、”投稿”というものを初めてしました。
 誰からも返事は来ないかもしれない。怒られるかもしれない。
 そういう不安が先走ってたんですよね。怒られないと気づかない
 部分もあるし、怒ってくれるだけ良い相手だし、何もなければ
 また自分で反省する部分が見えてくるのに。
 恐れるばかりではなく、本当に楽しく作成していきたいと思います。

 ★こんなに長文なんて過去ログにもないのに、すみません。
  でも、どうしても出来なかった投稿を初めてさせていただいて
  お返事もいただけて凄く嬉しかったんです。
  また楽しくASPの勉強もできるし、このサイトへのアクセスも
  更に増えそうです。
  おそらく、fujiさまも、暇人さまも、直々こちらのページを
  見ていらっしゃるのだと思いますので、少しおいてから
  この長文の投稿は消させていただきますね。管理人さん♪

今日は私の会社は仕事納めでした。
(いまは自宅からの投稿です)
皆様、どの投稿を見ても誰もがお忙しそうですが、
誰もが幸せでありますように♪良いお年を♪
また、こんなコラムっぽい長文をここまで読んでくださった方、
本当にこんな長文&自己満足的なものは今回限りにしますので
お許しくださいませ。

[3928] Re:お礼文です
投稿者:fujiさん 2003/12/27 10:26:48
こんにちわ メリーさんのさるさん。

ご丁寧なお返事ありがとうございます。
前回、Qに対してAをするのを忘れていました。(苦笑)

問題がどこにあるのか確定させたいので質問します。

>  Response.Write "<td>" & RS("Contents") & "<br></td>" & vbCRLF
> で、表示させています。

画面に表示されないとのことでしたが、
ブラウザのソースの表示で見たときはどうなっているのでしょうか?
途中で切れた文章の後に</br></td>がある場合は
RS("Contents")から戻ってくる内容が10行程度になることが問題ですね。
ソース表示上で、文章が途切れた状態以降何もない場合は。。。
HTMLが完結してないってなるので、
Response.Write の問題なのか、通信上に問題があるのでしょうか?
(おっ、これじゃあ回答じゃなくて質問投げてるのと同じだ^^;)


[3951] 「Response.Write」の文字数制限?
投稿者:メリーさんのさるさん 2004/01/08 12:18:59
こんにちは。報告が遅くなり申し訳ありません。

fujiさま、お返事ありがとうございます。

> 問題がどこにあるのか確定させたいので質問します。
> >  Response.Write "<td>" & RS("Contents") & "<br></td>" & vbCRLF
> 画面に表示されないとのことでしたが、
> ブラウザのソースの表示で見たときはどうなっているのでしょうか?
> 途中で切れた文章の後に</br></td>がある場合は
> RS("Contents")から戻ってくる内容が10行程度になることが問題ですね。

まさに、途中で切れた状態で</br></td>がありました。
また、</tr>や</table>の抜けもありませんでした。

> ソース表示上で、文章が途切れた状態以降何もない場合は。。。
> HTMLが完結してないってなるので、
> Response.Write の問題なのか、通信上に問題があるのでしょうか?

ちょっと試してみました。
(a)先頭270文字(適当な文字数?バイト数?です)を表示させても変わらず。
(b)RS("〜")を右から270文字を表示させると最後尾は(a)と変わらず、先頭は空白ができていました。
(c)Response.Write RS("〜") & "abcdef" とした場合、(a)で表示された文字列に"abcdef"が追加されていました。

これを考えると、RS("〜")で持ってきた内容がそもそも
全文字列ではないと思えるのですが。
冬休みで落ち着いたら上記確認をする事自体していなかった事に
気が付きました。
「Response.Write」の制限ではなく、SQLの結果を持ってくる場合の
文字数制限か、やり方が間違えているのでしょうか?
SQLで表示させている値は、ACCESSのデータでメモ型となっています。

ちなみに、ACCESSのモジュールでHTML吐き出しをした場合には
全て表示されます。

[3952] Re:「Response.Write」の文字数制限?
投稿者:YasNet(管理人)さん 2004/01/08 14:18:56
こんにちは YasNet(管理人)です。

fujiさん横レスすみません。

これなんか、参考になりますか
http://www.users.gr.jp/ml/archive/viewer.aspx?name=asp&no=11391

それでは 失礼致します。


> こんにちは。報告が遅くなり申し訳ありません。
>
> fujiさま、お返事ありがとうございます。
>
> > 問題がどこにあるのか確定させたいので質問します。
> > >  Response.Write "<td>" & RS("Contents") & "<br></td>" & vbCRLF
> > 画面に表示されないとのことでしたが、
> > ブラウザのソースの表示で見たときはどうなっているのでしょうか?
> > 途中で切れた文章の後に</br></td>がある場合は
> > RS("Contents")から戻ってくる内容が10行程度になることが問題ですね。
>
> まさに、途中で切れた状態で</br></td>がありました。
> また、</tr>や</table>の抜けもありませんでした。
>
> > ソース表示上で、文章が途切れた状態以降何もない場合は。。。
> > HTMLが完結してないってなるので、
> > Response.Write の問題なのか、通信上に問題があるのでしょうか?
>
> ちょっと試してみました。
> (a)先頭270文字(適当な文字数?バイト数?です)を表示させても変わらず。
> (b)RS("〜")を右から270文字を表示させると最後尾は(a)と変わらず、先頭は空白ができていました。
> (c)Response.Write RS("〜") & "abcdef" とした場合、(a)で表示された文字列に"abcdef"が追加されていました。
>
> これを考えると、RS("〜")で持ってきた内容がそもそも
> 全文字列ではないと思えるのですが。
> 冬休みで落ち着いたら上記確認をする事自体していなかった事に
> 気が付きました。
> 「Response.Write」の制限ではなく、SQLの結果を持ってくる場合の
> 文字数制限か、やり方が間違えているのでしょうか?
> SQLで表示させている値は、ACCESSのデータでメモ型となっています。
>
> ちなみに、ACCESSのモジュールでHTML吐き出しをした場合には
> 全て表示されます。
>

[3953] Re:「Response.Write」の文字数制限?
投稿者:fujiさん 2004/01/08 18:06:55
こんにちわ メリーさんのさるさん。

> これを考えると、RS("〜")で持ってきた内容がそもそも
> 全文字列ではないと思えるのですが。

メモ型のフィールドに1000行(全角3千文字+半角3万文字)の文字列を登録して実験してみると、
ちゃんと表示されました。(私のとこでちゃんと表示されても解決にはならないですね)
ドライバとかの問題でしょうか?

そのときのコードを記載します。

sql = "SELECT * FROM sam_table"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./sam.mdb")
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.open sql, objConn, 1, 1, 1
Response.Write objRS("sam_text")

環境は、Windows2000Pro+IIS5.0+Access2000です。



TreeBBS For ASP V.0.1.3
Program By YasNet