|
阿罗 2005年1月27日
初次接触 ADP,往往被建议从解读 NorthwindCS 入手。确实,这是个很好的范例。然而,由于很多同学是从自学 Access-mdb 开始入门的,刚刚开始 ADP 之旅,看到 NorthwindSC 这么复杂的一个启动局面,根本就搞不懂这是怎么回事;另外,不排除一些老鸟,虽然可以做一些 ADP 的东西,但是往往局限于手工部署,虽然解读 NorthwindCS 可以有所提高,由于注释都是英文,而且定义的常量变量一大堆,看着都觉得累,这样就失去了进一步提高的机会,很是可惜。本文希望通过对 NorthwindCS 启动模块的分析,让读者深入体会 ADP 向 SQL Server 连接的设置和数据库自动化安装的机理,并且想通过一个作者自己编制的程序来进一步说明如何灵活运用这些刚刚学到的概念。希望同学们通过这篇短文,能举一反三地写出自己的、更好的 ADP 应用程序。
以 Office 2003 为例(下同),NorthwindCS.adp 一般在 C:/program files/Microsoft office/office11/samples/ 目录中,还应该看到一个 northwindCS.sql 数据库脚本文件。对于如何设置启动窗体和切换到另一个启动窗体,就不说了,如果连这个都没办法搞明白,那么就不要把时间浪费在这篇文章上了。
现在直接进入正题,“启动”窗体启动时,调用的是“启动”模块里的 OpenStartup() 函数,所以,只要把“启动”模块弄明白就行了。同启动模块配合的,是 Constants 模块,这个模块的用意是为了程序维护设置以及本地化的方便,同时也能使其他模块看起来变得清晰一些。当然,对中文用户来说,想快速地理解“启动”模块,一个比较好的办法竟然是把这些常量手工代到“启动”模块里,如此,理解程序反而会更快些,比如,“启动”模块中的- Dim Response, Msg, Title, Style
- Msg = SelectPrompt1 + Chr$(10) + Chr$(13) + Chr$(10) + Chr$(13) + SelectPrompt2
- Style = vbOKCancel + vbInformation
- Title = SelectTitle
- Response = MsgBox(Msg, Style, Title)
- If Response <> vbCancel Then……….
复制代码 这种方式写的,如果改成- If MsgBox("你要……吗?", vbOKCancel+vbInformation, "请选择")=vbOK then ………
复制代码 这样的形式,只要一行就够,也许对初次看程序略有帮助。
现在来看“启动”模块,一共有
- Function OpenStartup() As Boolean
- Function CreateDB() As Boolean
- Function RunScript(DBName As String, InFile As String) As Boolean
- Function HideStartupForm()
- Function CloseForm()
- Function CheckConnectedServer()
- Function DBInstallPrompt(Server As String) As Boolean
- Public Function GetDevInfo(cm AS ADODB…………….) As Boolean
- Public Function CheckForNorthwind(cn As ADODB.Connection) As Boolean
- Public Function StartSQLServer() As Boolean
- Public Sub ChangeDB(NewDBName As String)
- Public Function IsNorthwindNew()
12 个函数或过程。现在,把一些同本文主题无关的或实际用处不大的先去掉,例如 HideStartupForm,CloseForm,GetDevInfo(这是为了获得同 sql server 早先版本的兼容性),IsNorthwindNew(这是为了获得同早先版本的 NorthwindCS 数据库的兼容性,主要是雇员图片的存储方式变化),现在下面 8 个过程或函数是我们需要理解掌握的:
Function OpenStartup() As Boolean – 本文将要详细解释
Function |
|