- ベストアンサー
テーブルのサイズを取得したい
ストアドまたはVB側から任意のテーブルのディスク使用領域を取得したいと 思っています。sp_spaceusedを使用かと思ったのですが、返値が0か1との ことなのでプログラム内で値が取得できずに困っています。 良い方法があったら教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Public Function CnnExecute2(ByVal strSQL As String) As String On Error GoTo Err_CnnExecute2 Dim I As Integer Dim N As Integer Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim retText As String Set cnn = CurrentProject.Connection With cnn .Errors.Clear .BeginTrans Set rst = cnn.Execute(strSQL) .CommitTrans If Not rst.BOF Then N = rst.Fields.Count - 1 rst.MoveFirst For I = 0 To N retText = retText & rst.Fields(I) & ";" Next I End If End With Exit_CnnExecute2: On Error Resume Next cnn.Close Set cnn = Nothing CnnExecute2 = retText Exit Function Err_CnnExecute2: If cnn.Errors.Count > 0 Then ErrMessage cnn.Errors(0), strSQL cnn.RollbackTrans Else MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute2)", _ vbExclamation, " 関数エラーメッセージ" End If Resume Exit_CnnExecute2 End Function ? CnnExecute2(sp_spaceused, "FileName'") これで、sp_spaceusedの実行結果を次のように取得することができます。 ? CnnExecute2 ("sp_spaceused 'Perform'") Perform;4 ;24 KB;8 KB;16 KB;0 KB;
その他の回答 (1)
- 7marine
- ベストアンサー率36% (59/160)
返値と結果セットを勘違いしているかも それぞれ別物なので注意してください レコードセットオブジェクトなどに結果セットを格納すると きちんと使用領域は取得できると思います