PerlCGIでクエリの検索結果が途中で途切れる。
環境: Windows 7 Home Premium 32bit
Mem: 3.24GB
Apache for win 2.2
Perl: v5.10.1 built for MSWin32-x86-multi-thread
access の mdb を ODBC 接続し perl cgi をフロントエンドとして
クエリを表示させようとしています。
クエリの表示自体はエラーなくできましたが、検索結果が全て表示されません。
# 本来は 200件以上あるはずなのに、半分以下しか表示されない。
感触として、バッファかなにかのバイト制限のような気もするのですが、
全ての検索結果を表示するためにはどうすればよいのかご教示いただけないでしょうか?
コードは以下のとおりです。
--------------------------------------------------------
#!c:/perl/bin/perl.exe
use Win32::ODBC;
print "Content-type: text/html\n\n";
print "<html>\n";
print "<body>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=shift_jis\">\n";
$db= new Win32::ODBC("DSN=kaigai");
$str_sql = "SELECT q_prestounyu.hiduke, q_factory_master.koujyoryakumei, q_prestounyu.keiyaku, " ;
$str_sql .= "q_prestounyu.hinban, q_pres_master.ryakumei, q_prestounyu.nyukousu ";
$str_sql .= "FROM (q_prestounyu INNER JOIN q_pres_master ON q_prestounyu.presno = q_pres_master.presno) ";
$str_sql .= "INNER JOIN q_factory_master ON q_prestounyu.koujyo = q_factory_master.koujyono ";
$str_sql .= "WHERE (((q_prestounyu.hiduke)>=#2010/1/10# And (q_prestounyu.hiduke)<=#2010/1/31#)) ";
$str_sql .= "ORDER BY q_prestounyu.hiduke;";
print "$str_sql<BR>\n";
$i=0;
$db->Sql($str_sql);
# 取得したレコードセットの数だけループして表示
while ( $db->FetchRow() ){
$i ++;
undef %FIELDS;
# 各フィールドのデータをハッシュに格納
%FIELDS= $db->DataHash();
print "$i ";
print "$FIELDS{'hiduke'} $FIELDS{'koujyoryakumei'}\n";
print "$FIELDS{'keiyaku'} $FIELDS{'hinban'}\n";
print "$FIELDS{'ryakumei'} $FIELDS{'nyukousu'}<BR>";
}
# データベースを閉じる
$db->Close( );
print "</body></html>";
exit;
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> ブラウザからのcgi出力ではなく、コンソール上で、
> perl hoge.cgi と実行しても結果が変わりませんでしたので、
> HTML構文のエラーの可能性は低いと思っています。
説明不足でした。HTML の構文エラーを疑ったわけではなく、
最後に改行がないと、出力したテキストがすべて出力されないと
いう経験があったので、それを疑いました。
コンソールで実行された場合も同じとのことですが、</body></html>
は表示されるのでしょうか。それともレコードを何件か出力したところで
終了するのでしょうか。
</body></html>が出ているのでしたら、データベースからのデータの取り出し
に問題がありそうです。
一度 プログラムの先頭に
use strict;
use warnings;
をつけて実行してみてはいかがでしょうか。
No.2
- 回答日時:
関係ないのですがメモリ4GBではないですか?
この回答への補足
物理的には4GBですが、OSが認識している容量を書いているだけです。
perl の gc では、この辺はあんまり関係ないと思いますが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進の10進変換について
-
シェルスクリプトで、空白(ス...
-
10進数→2進数の出力について
-
PythonでUTF8の文字列をリスト...
-
PerlCGIでクエリの検索結果が途...
-
Pythonでコンソールをクリアす...
-
swift 文字コードから文字に変...
-
qq!!の意味を教えてください。
-
ヒアドキュメントで表示した、...
-
【至急!!!】python言語で本を見...
-
switch文のエラーについて
-
awkの正規表現での最左最短マッ...
-
パイソンのクラスについて
-
パイソン文法で(インデント)
-
javaのパッケージ構成で各パッ...
-
Pythonの np.indicesに関する質...
-
<python> 文字列か数字かの判別
-
変数名に変数を使用
-
c言語 16進数の2進数への変換
-
変数まとめて0に初期化する方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
16進の10進変換について
-
Pythonでターミナルに文字を出...
-
シェルスクリプトで、空白(ス...
-
【至急!!!】python言語で本を見...
-
pythonで演算子を変数に代入す...
-
c言語 16進数の2進数への変換
-
パイソンのクラスについて
-
I2C接続のLCDディスプレイを使う
-
関数「exists」と「defined」の...
-
pythonの*
-
変数の中は文字列か数値か調べ...
-
数値かどうかの判定方法
-
python print文のエラー
-
int(input("○○"))の使い方
-
Perlの例文でif($a==1&&$b==5&&...
-
Use of uninitialized value ---
-
awkの正規表現での最左最短マッ...
-
swift 文字コードから文字に変...
-
CGIでimgタグでalignを使うとエ...
-
javaのパッケージ構成で各パッ...
おすすめ情報