出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[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 |