65.9K
CodeProject 正在变化。 阅读更多。
Home

数据库信息工具

starIconstarIconstarIconstarIconstarIcon

5.00/5 (5投票s)

2000年10月27日

viewsIcon

82645

downloadIcon

1975

探索表(和视图)的结构。

  • 下载源代码文件 - 19 Kb
  • Sample Image - DBInfo.gif

    这是什么?

    这个有用的工具解决了我一个大问题:能够查看数据库中表的结构。使用这个软件,你可以读取表、视图和系统表的结构。你还可以将该结构列表导出到 .TXT 文件或直接打印,方便使用。

    如何使用

    由于通过 ODBC 访问数据库,你可以读取拥有正确 ODBC 驱动程序的任何数据库。

    通常,你可以访问的每个数据库都有其自身的 DSN(数据源名称),由一个唯一的名称标识:点击 选择数据库 按钮,你可以看到定义的 DSN 列表,选择你想要检查的数据库,并读取所有表的结构。

    如果你启用了 视图系统表,你可以看到所有视图和系统表。某些数据库(如 ACCESS 97)不允许你读取系统表。在组合框中选择表(或视图),查看其内部内容。你没有针对你的数据库的特定 DSN 吗?不用担心:从 DSN 列表中选择数据库引擎的 DSN,它会自动询问要处理的数据库(通常是一个文件),DBInfo 会完成剩下的工作。

    已知bug

    我知道这段代码不是一个给初学者程序员的有效示例……正如你所看到的,缺少最小的异常处理,不支持 UNICODE,等等。但它仅供程序员使用;在这种情况下,崩溃不是问题。

    你可能会发现一个不构成实际问题的错误:如果表名中包含空格(或减号),我会将表名放在两个方括号之间;某些数据库引擎不喜欢这样。在这种情况下,消息会通知你这个问题。

    这是我使用的代码

    // add [ & ] if name contains spaces or others chars
    if( sBuffer.Find(' ') != -1 ||
        sBuffer.Find('-') != -1 ) {
        sSQL  = "SELECT * FROM [";
        sSQL += sBuffer;
        sSQL += "]";
    } else {
        sSQL  = "SELECT * FROM ";
        sSQL += sBuffer;
    }
    

    其中 sBuffer 包含表(或视图)的名称。

    特别感谢

    这个工具是在我阅读了 George Poulose [使用 ODBC 的交互式 SQL 工具]、Chris Maunder [无需文档/视图框架的打印] 和 Richard Stringer [打印类库] 的优秀代码并学习了有效的编程技术后编写的。
    如果没有他们的文章,我将无法创建这个工具。再次感谢各位!

    就这样,各位!

    如果你有几分钟时间可以浪费,请访问我的 主页

    © . All rights reserved.