- 締切済み
ODBC接続でデータ件数を求める方法を教えてください
いつもお世話になっております。 ODBCサーバー:IBM DB2(UDB)なのですが、下記コードを実行しても 件数が表示されず取得できませんでした。 何方か上記サーバーで件数を取得する方法をご存知でしたら、ご教授お願いいたします。(表示データ件数のコントロールをしたいのです) $con2 = odbc_connect($ODBCDSN2, $DSNUSER2, $DSNPASS2); $sql2 = "SELECT Count(*) AS cnt FROM tabl1"; $rst2 = odbc_exec($con2, $sql2); $col2 = odbc_fetch_array($rst2); $tcnt = $col2[cnt]; print "tcnt="; print $tcnt; 上記コードを、ODBC MySQLで実行すると件数が表示されますのでIBM DB2(UDB)固有の 状況だと思うのですが・・・どうしたらいいのか解りません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ArukuMail
- ベストアンサー率22% (115/510)
おっと! 今思い出しましたけど、SQLで 特定の数だけをリストアップするのは標準でできたと思います。
- ArukuMail
- ベストアンサー率22% (115/510)
だいたい、代替関数があります 無いマイナーなDBなら こちかがカウントして 規定値にたっしたら終わるくらいしかないです。
- ArukuMail
- ベストアンサー率22% (115/510)
おくれましたすみません COUNT 自体DB2でもOKみたい。<ってかこれってSQLには標準ですな ッてことはSQLの構文がいけないのでしょう たとえば閉めを;でないだめとかありますから
お礼
済みません、お手数お掛けしました。 print $tcnt; は何も表示しませんが、 print_r($col2); ですと Array ( [CNT2] => 12 ) と件数が表示できました。 ありがとうございました。 ***もう1つ教えて頂けませんか?********* ・検索サイトなどでも良くある、"次ページ"とか"次の10件"を表示するというデータ表示の制御方法なのですが、LIMIT関数がないDBでは どのようなプログラミングになるのでしょうか? (DB2のODBC接続なのでページ制御方法で頭が真っ白状態です。) ・手法概略か参考サイトがあったら教えて下さい。
- ArukuMail
- ベストアンサー率22% (115/510)
$sql2 = "SELECT Count(*) AS cnt FROM tabl1"; Conut(*)の*が抽象しすぎているのでは?
お礼
ArukuMailさん、早速のご回答ありがとうございました。 Conut(*)の*を実際の項目名を指定して実行しましたが、 結果は同じでした。エラーも出ないので不思議です。 ODBCサーバー:IBM DB2(UDB)でサポートされていない関数の様な気がします。このへんの情報サイトをご存知でしたら教えて頂けますか?
お礼
どうもありがとうございました。 配列表示とそのページング処理をしたかったのですが、 もっと基礎勉強をします。