• ベストアンサー

RDOでテーブルの件数を求める一番早い方法は?

Set rcsD = goRDO_Con.OpenResultset(sSQL, rdOpenKeyset, rdConcurReadOnly) で開いて movelast して rcsd.countを取るのと count(AAA) AS 読込件数でとって Set rcsD = goRDO_Con.OpenResultset(sSQL, rdOpenForwardOnly, rdConcurReadOnly) rcsD!読込件数 で求めるのはどっちがはやいのでしょう?

  • GBSGBS
  • お礼率36% (370/1012)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

RDOは使用したことがないですが、 DAOの場合は、後者のほうが早いです。 (一概には言えませんが...) 大量のデータになればなるほど顕著に処理速度の差が現れます。

関連するQ&A

  • group化による件数順で表示

    初歩的質問かとは思いますが、下記の後に order by [件数]のように並べ替えをするにはどのようにしたらよいでしょうか。このままくっつけるとダメなようで。 sSQL = "SELECT Author,count(MsgID) as 件数 FROM messages group by Author #access Jetです。

  • ACCESS クエリーから件数取得

    下記のような記述でクエリーより件数を取得したいのですがうまくいきません。 rstBufの指定が悪いのだとは思い、調べてはいるのですがうまくいかない状態です。 どなたかご助言をお願い致します。 Dim rstBuf As DAO.Recordset Dim qryBuf As DAO.QueryDef strSQL=select xx from xx Set qryBuf = CurrentDb.CreateQueryDef(Q_RPT, strSQL) Set rstBuf = qryBuf.OpenRecordset(strSQL,dbOpenDynaset) If rstBuf.EOF = False Then rstBuf.MoveLast count = rstBuf.RecordCount End If rstBuf.Close Set rstBuf = Nothing

  • テーブルのレコード数を調べる関数はありますか?

    SELECT COUNT(*) AS KENSU FROM TEST1; をレコードセットして件数を把握しておりますが、 もっと簡単に件数がわかりますか? 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • RDOでrowcountが1以上なのに、EOF!

    よく分からない現象が発生して困っています。 SQLServer2005 (9.0.1399) 【?な結果】 sSql = "Select * from ○○マスタ" Set oRst = goRDO_Con.OpenResultset(sSql, rdOpenKeyset, rdConcurReadOnly) Do Until oRst.EOF oRst.MoveNext Loop 上記のような文で、oRst.rowcountを取得すると10件なのに、 oRst.Eofを取得すると最初から常にTrueが返ってきます。 【思い描いている結果】 sSql = "Select * from ○○マスタ" Set oRst = goRDO_Con.OpenResultset(sSql, , rdConcurReadOnly) Do Until oRst.EOF oRst.MoveNext Loop 上記のような文では、oRst.rowcountを取得すると10件で oRst.Eofを取得すると最初はFalseが返ってきます。 他のSQLServerがインストールされている別の端末では、 正常にどちらの文も最初はEOFはFalseなのにも関わらず、 ある端末だけが上記のような結果になります。 どこかSQLServerのインストールがおかしいのかもしれませんが、 全く検討がつきません。 怪しいのは、?な結果が返る端末のホスト名が最初○○で、 その状態でSQLServer\MSSQLEXPRESSをインストール。 その後、ホスト名が△△に変更。SQLServer2005をインストール(上書き) している状況ということです。 どなかた何か情報ありませんでしょうか。。

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

    • 締切済み
    • PHP
  • レコード件数の表示

    夜分失礼します。 上記内容について教えてください。 今JAVAを用いてレコード件数(200件)を表示させようとしています。 しかし、レコードセットの表示方法しか知らず、またレコード件数をPHPで表示させる方法くらいしか検索できませんでした。どこがいけないか指摘してください。 以下にコア部分を書きます。 // ドライバクラスをロード Class.forName("org.gjt.mm.mysql.Driver"); // データベースへ接続 String url = "jdbc:mysql://localhost:3306/db"; con = DriverManager.getConnection(url,"root","**********") stmt2 = con.createStatement(); strQuery2 = " select count(*) AS RecordNums from ********** "; ResultSet rs2 = stmt2.executeQuery( strQuery2 ); SumNo = rs2.getFetchSize(); どうしてもSumNo=0となってしまいます。

    • ベストアンサー
    • Java
  • Excel-VBAでMySQのレコード件数を得たい

    Excel-VBAでレンタルサーバーにあるMySQLのテーブルのレコード件数を得たいのですが、うまくいきません。 色々と調べて下記のようなコードにしたのですが、結果「-1」と表示されます。 レコードは1500件ほどあります。 Excel-VBAからテーブルにレコードを挿入したり、Excel-VBAにレコードをもってきたりはできますので、アクセス自体は問題ないと思います。 どうにも分からず困ってます、どなたか教えてください。 環境としては、Excel2000 WindowsXP MySQL5 ver5.xx です。 Sub testxx() Dim con As ADODB.Connection Dim rs As ADODB.Recordset Dim connectionString As String Dim kensu As Integer connectionString = "Driver={MySQL ODBC 5.1 DRIVER};" _ & " SERVER=xxxx.xxxx.jp;" _ & " DATABASE=xxxDB;" _ & " USER=xxxuser;" _ & " PASSWORD=xxxpass;" Set con = New ADODB.Connection con.Open connectionString sqlStr = "select * from LinkTable" Set rs = con.Execute(sqlStr) 'kensu:件数----------- kensu = rs.RecordCount MsgBox (kensu) 'kensu:件数----------- con.Close End Sub

  • VBAでレコードセットの総レコード数を取得する方法

    Dim con As ADODB.Connection Dim rsData As ADODB.Recordset Dim DNSname$,USERname$,PASSw$,cnt&  Set con = CreateObject("ADODB.Connection")  con.Open "DSN=" & DNSname & "; UID= " USERname & "; PWD=" & PASSw  Set rsData = New ADODB.Recordset  rsData.Open SQL, con  Do While Not rsData.EOF   rsData.MoveLast   cnt=rsData.RecordCount   rsData.First  LOOP といいコードで総レコード数が取得できるかなとやってみたところ、rsData.MoveLastのところで、「行セットは逆フェッチをサポートしていません」というエラーが出ました。 なにかほかの方法で総レコード数を取得する方法があるのでしょうか? 自分で他に試したことは、rsData.EOFまでrsData.MoveNextでもっていきrsData.EOF-1レコードの.RecordCountを取得すしようと試みましたが、最後のレコードまできても.RecordCountは「-1」のまま変化しませんでした。レコードセットの呼び込み方が不味いのでしょうか?

  • CakePHPのfindの取得件数は?

    ご存知の方は、お教えください。 CakePHPのfindの取得件数は、どのようにされておりますか? find('count',・・・)ですか? 取得されたデータの配列をcountするのは、間違っていますか? pg_num_rows のように、読み込み時に自動的に設定される変数(?)は無いのでしょうか?

    • ベストアンサー
    • PHP
  • VBAでテーブル名とカラム名を動的に取得したい。

    お世話になります。 VBAでMySQLに接続をし、DB操作をするものを作成しています。 ・Windows7 ・エクセル2007 ・MySQL 5.1 ・ODBC そこで、以下のことをしたいと思っています。 (1)ある特定のデータベースの中にあるテーブル名を全取得 (2)そのテーブル名を変数または配列に格納 (3)そのテーブル名をキーに、今度はフィールド名を全取得 私が組んでみた該当のソースの部分は、   Dim aaa As New ADODB.Recordset   strSql = "show tables from testdb;"   Set aaa = con.Execute(strSql) 'conはADODB.connection Dim j As Integer For j = 1 To aaa.Fields.Count MsgBox aaa.Fields(j -1).name Next ・・・とここまで来ました。 show tables from databaseで、データベースにあるテーブルを取得して、 aaa.Fields(j -1).nameには「Tables_in_testdb」が入ります。 その次に、もう消してしまったので無いのですが、 msgbox aaa.Fields("Tables_in_testdb")?とやってみたところ、 データベースに入っている一つのテーブル名だけしか取得できませんでした。 ソースが回りくどい気がする+テーブル名が取得出来ず、 大分煮詰まっています。。。 何かもっとうまい書き方や構文(サンプル)ありましたら教えてください!!!