从 SQL 创建数据库文件生成数据库网页






2.08/5 (6投票s)
2006 年 6 月 29 日
2分钟阅读

20091

312
从 SQL 创建数据库文件生成数据库网页

引言
我们经常需要开发与数据库相关的应用程序,并且有很多文件来描述数据库结构,例如数据库设计、创建数据库的 SQL 脚本等。那么有没有一种简单的方法来管理这些文件呢?在这里,我分享我的方法。
准备好了吗?
首先,我们需要知道需要运行 SqlDoc vbscript 文件的内容。我已经在源代码文件中添加了一个示例文件,你可以现在下载它,其中包含一个示例 dbpm_iv.sql
文件,它在 SQL Server 2k5 中创建一个数据库。啊,我为我的应用程序使用了 Sql Server 2k5,它也可以与 Sql Server 2k 配合使用。
运行 SqlDoc.vbs
双击 SqlDoc.vbs 文件,你将看到一个小的对话框显示“完成”工作。然后你可以在当前文件夹中找到一个 db_design.html 文件。这就是我们想要的。
如何实现它?
首先,你可能需要了解一些关于正则表达式的知识,因为我解析 SQL 语句的所有内容都是通过正则表达式实现的。
需要正则表达式的帮助吗?这里推荐一个好的网站供你学习:正则表达式参考 - 基本语法
我使用了以下正则表达式来获取 *.sql 文件中的对象。
dim rxDatabase, rxTable, rxPK, rxFK, rxColumn, rxTableSummary
rxColumn = "([a-zA-Z0-9]+)\s+(int identity|int|char|varchar|nvarchar|bit)\s?(\([\d\s,]+\))?\s?(not null|null)?\,\s?(/\*([^\*/]+)\*/)?"
'group info: 0 - columnName,1 - type, 2 - range, 3 - null?
rxDatabase = "create\s+database\s+([0-9a-zA-Z]+)"
'group info: 0 - databaseName
rxTable = "create\s+table\s+([0-9a-zA-Z]+)"
'group info: 0 - tableName
rxPK = "primary\s+key\s+\(([0-9a-zA-Z]+)\)"
'group info: 0 - PK columnName
rxFK = "foreign\s+key\s+\(([0-9a-zA-Z]+)\)"
'group info: 0 - FK columnName
rxTableSummary = "/\*\s?summary:\s?(.+)\*/"
'group info: 0 - summary text
注意:在 vbscript 和其他语言(例如 C#)中使用正则表达式之间存在差异。
然后,我将这些对象(数据库、表、列、主键、外键、表摘要)的文本格式化为 HTML 表格,就像页面顶部的图像一样。
就这样了。请从源代码中获取更多详细信息,代码就是一切。
关于我的第一篇文章
哦,这是我在 CP 上发表的第一篇文章。如果你发现任何不好的地方,请给我一些建议。(而且我的英语不如我的母语——中文好,请原谅我糟糕的英语)。