-3

SQL テーブル内のレコード数を特定し、その値を変数に保存するにはどうすればよいですか?

4

2 に答える 2

1

ADOを使用してデータベースにアクセスする:

  1. 簡単なSELECT count(0) FROM myTableクエリを実行します。
  2. 結果セットにアクセスし (空でない場合)、返された値を読み取ります。

テストされていないコード:

Dim conn, rs, recordsCount
recordsCount = -1

'initialize the connection
set conn = ...

'run the query and retrieve the results
set rs = conn.execute("SELECT count(0) as cnt FROM myTable")
if not rs.EOF then
  recordsCount = cint(rs("cnt"))
end if


'cleanup
rs.close
conn.close

set rs = nothing
set conn = nothing
于 2012-12-03T17:17:25.610 に答える
1

クエリのレコードセット/結果のサイズを取得する 3 つの方法:

Option Explicit

' simple way to get a connection
Dim oDb : Set oDb = CreateObject("ADODB.Connection")
oDb.Open "dsn=NWIND"

' execute & !obtain result! of "SELECT COUNT()" query
WScript.Echo "Select Count(*):", oDb.Execute("SELECT COUNT(*) FROM Products").Fields(0).Value

' trying to use recordcount (fails, because non-static rs)
WScript.Echo "RecordCount (A):", oDb.Execute("SELECT * FROM Products").RecordCount

' use recordcount with static rs
Const adOpenStatic = 3
Dim oRs : Set oRS = CreateObject("ADODB.Recordset")
oRS.Open "SELECT * FROM Products", oDb, adOpenStatic
WScript.Echo "RecordCount (B):", oRs.RecordCount

' get rows from query and use UBound()
Dim aData : aData = oDb.Execute("SELECT * FROM Products").GetRows()
WScript.Echo "GetRows():", UBound(aData, 2) + 1

oDb.Close

出力:

cscript 04.vbs
Select Count(*): 77
RecordCount (A): -1
RecordCount (B): 77
GetRows(): 77

これらの戦略の詳細については、ドキュメントを使用してください。

于 2012-12-03T17:42:59.880 に答える