首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C++获取SQL数据库的总大小

如何使用C++获取SQL数据库的总大小
EN

Stack Overflow用户
提问于 2015-03-27 16:04:51
回答 1查看 271关注 0票数 2

问题:我希望使用C++代码来获得Server和/或Oracle数据库的总大小(最好是在MBs中)。

我尝试过的:当前,我正在使用SQLGetInfo()检索有关当前数据库连接的信息。我传入一个struct,它保存了所有的数据库信息。然后使用该结构向用户显示数据库信息。

代码语言:javascript
复制
//Used to gather information about the connected database
HRESULT GetInfo(DB_CONN_INFO &info)
{   
   SWORD cbValue;
   SQLGetInfo(sqlc.g_hdbc, SQL_DATA_SOURCE_NAME,
          info.szDSN, sizeof(info.szDSN), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_DATABASE_NAME,
          info.szDatabase, sizeof(info.szDatabase), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_DBMS_NAME,
          info.szDbmsName, sizeof(info.szDbmsName), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_DBMS_VER,
          info.szDbmsVer, sizeof(info.szDbmsVer), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_DRIVER_NAME,
          info.szDriverName, sizeof(info.szDriverName), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_DRIVER_VER,
          info.szDriverVer, sizeof(info.szDriverVer), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_DRIVER_ODBC_VER,
          info.szDriverOdbcVer, sizeof(info.szDriverOdbcVer), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_ODBC_VER,
          info.szOdbcVer, sizeof(info.szOdbcVer), &cbValue);
   SQLGetInfo(sqlc.g_hdbc, SQL_SERVER_NAME,
          info.szServerName, sizeof(info.szServerName), &cbValue);
   return S_OK;
}

据我所知,SQLGetInfo()无法确定数据库的总大小。还有别的办法吗?

我在2010中使用MFC C++。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-27 19:44:16

对于Server,可以使用sp_spaceused。对于Oracle,您可以从数据文件:select sum(bytes)/1024/1024 from dba_data_files; (或v$datafile)中获得大小。这是表的大小(对于日志文件:select sum(bytes)/1024/1024 from v$log;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29305097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档