• 締切済み

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)固有の 状況だと思うのですが・・・どうしたらいいのか解りません。

みんなの回答

  • ArukuMail
  • ベストアンサー率22% (115/510)
回答No.4

おっと! 今思い出しましたけど、SQLで 特定の数だけをリストアップするのは標準でできたと思います。

syosin-oyaji
質問者

お礼

どうもありがとうございました。 配列表示とそのページング処理をしたかったのですが、 もっと基礎勉強をします。

  • ArukuMail
  • ベストアンサー率22% (115/510)
回答No.3

だいたい、代替関数があります 無いマイナーなDBなら こちかがカウントして 規定値にたっしたら終わるくらいしかないです。

  • ArukuMail
  • ベストアンサー率22% (115/510)
回答No.2

おくれましたすみません COUNT 自体DB2でもOKみたい。<ってかこれってSQLには標準ですな ッてことはSQLの構文がいけないのでしょう たとえば閉めを;でないだめとかありますから

syosin-oyaji
質問者

お礼

済みません、お手数お掛けしました。 print $tcnt; は何も表示しませんが、 print_r($col2); ですと Array ( [CNT2] => 12 ) と件数が表示できました。 ありがとうございました。 ***もう1つ教えて頂けませんか?********* ・検索サイトなどでも良くある、"次ページ"とか"次の10件"を表示するというデータ表示の制御方法なのですが、LIMIT関数がないDBでは どのようなプログラミングになるのでしょうか? (DB2のODBC接続なのでページ制御方法で頭が真っ白状態です。) ・手法概略か参考サイトがあったら教えて下さい。

  • ArukuMail
  • ベストアンサー率22% (115/510)
回答No.1

$sql2 = "SELECT Count(*) AS cnt FROM tabl1"; Conut(*)の*が抽象しすぎているのでは?

syosin-oyaji
質問者

お礼

ArukuMailさん、早速のご回答ありがとうございました。 Conut(*)の*を実際の項目名を指定して実行しましたが、 結果は同じでした。エラーも出ないので不思議です。 ODBCサーバー:IBM DB2(UDB)でサポートされていない関数の様な気がします。このへんの情報サイトをご存知でしたら教えて頂けますか?

関連するQ&A