如何使用C++获取SQL数据库的总大小
How to get the total size of a SQL database using C++
问题:我希望使用C++代码来获取SQL Server和/或Oracle数据库的总大小(最好是MB)。
我尝试过的:目前,我正在使用SQLGetInfo()
来检索有关当前数据库连接的信息。我传入一个struct
,它保存了所有的数据库信息。然后,我使用该结构向用户显示数据库信息。
//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()
无法确定数据库的总大小。还有别的办法吗?
我在Visual Studio 2010中使用MFC C++。
对于SQL Server,您可以使用sp_spaceused
。对于Oracle,您可以从数据文件中获取大小:select sum(bytes)/1024/1024 from dba_data_files;
(或v$datafile
)。这是表的大小(对于日志文件:select sum(bytes)/1024/1024 from v$log;
)
相关文章:
- 使用 Qt5 SQL 进行异步数据库访问的策略
- 为 Sql 服务器实现 odbc 包装器.将数据库数据读取为字符或要求驱动程序将数据转换为 C 类型
- 如何在 c++ 中从 SQL 数据库中读取亚洲字符
- 如何从 Oracle 数据库中获取 qt 中 SQL 查询的传输字节大小?
- 我们可以从 TXT 文件中读取数据并使用 C 和 C++ 将其保存到 SQL 数据库吗?
- C++ Qt SQL lite 数据库连接问题
- 如何在C++代码中连接 SQL Server 数据库
- Windows 10 中的 MS Access 数据库 SQL 查询问题
- 使用C SQL.H.备份SQL数据库
- QT-写入SQL数据库时,空的qlineedits不会以null的方式传递
- 从SQL数据库到CIMAGE的图像
- C QT中的SQL数据库更新未前进到下一个ID
- ODBC 错误"String data, right truncation State code: 22001"与 SQL Server 数据库
- 将当前日期与 c++ 中的 sql 数据库条目匹配
- PostgreSQL 的替代方案,用于 C/C++ 应用程序中的嵌入式 SQL 数据库
- 将 SQL 数据库移动到内存中
- 如何将sql数据库文件从系统位置复制到另一个位置
- 如何使用C++获取SQL数据库的总大小
- 为什么我的字节数组被分割在0x00当我插入到我的数据库(SQL SERVER, c++)
- Qt将数据库SQL添加到从cMake导入的项目中