- ベストアンサー
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)
- その他(データベース)
- 回答数1
- ありがとう数0
- みんなの回答 (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
- ベストアンサー
- Excel(エクセル)
- 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")?とやってみたところ、 データベースに入っている一つのテーブル名だけしか取得できませんでした。 ソースが回りくどい気がする+テーブル名が取得出来ず、 大分煮詰まっています。。。 何かもっとうまい書き方や構文(サンプル)ありましたら教えてください!!!
- ベストアンサー
- Visual Basic