Web连接应用开发全流程指南
立即解锁
发布时间: 2025-08-22 01:31:40 阅读量: 2 订阅数: 7 


WebRAD:使用Visual FoxPro构建Web数据库应用
### Web连接应用开发全流程指南
#### 1. 清理代码
在处理完所有请求后,有一段代码会对工作区进行快照,并将信息存储到数组 `laPostUsed` 中。然后将该数组与 `TODOMAIN` 中创建的数组 `aOpenDbfs` 进行比较,关闭所有在 `laPostUsed` 中但不在 `aOpenDbfs` 中的表。这样,每次请求处理完成后,数据环境都会恢复到初始状态,这是一种简单有效的工作区管理方式。
当查询引擎创建表时,会将表创建在 `TODO.INI` 文件中 `TEMPPATH` 指定的目录下。经过一天的使用,该目录可能会变得非常满。为了清理这些文件,可以创建一个简单的 BAT 文件来删除该目录下的所有文件。例如,创建一个名为 `CLEAN.BAT` 的批处理文件,内容如下:
```plaintext
DEL \temp\todo\data\*.*
```
要确保 BAT 文件中指定的目录与 `TODO.INI` 文件中 `TEMPPATH` 的目录一致。在 Windows 2000 中设置该批处理文件定时运行的步骤如下:
1. 点击“开始”|“程序”|“附件”|“系统工具”|“计划任务”。
2. 双击“添加计划任务”创建一个新的计划事件。
3. 指向要计划运行的文件,这里是 `CLEAN.BAT` 文件。
4. 指定运行的频率和时间。
5. 输入执行时使用的用户账户,系统会模拟该账户运行程序,这样即使桌面未登录也能运行程序。
6. 点击“完成”,任务就会自动定时运行。
需要注意的是,这个批处理文件只会删除之前清理程序已经关闭的文件,正在使用的打开文件不会被删除。
#### 2. 使用 DEBUG 类扩展框架
常见问题之一是如何知道发送到服务器的数据。`DEBUGPROCESS` 类库可以将所有 POST 表单变量、服务器变量、`DISPLAY STATUS`、`DISPLAY MEMORY` 以及在 Visual FoxPro 7 中的 `SHOWPLAN` 结果追加到响应页面。每次提交页面或点击链接时,响应页面底部都会显示这些调试信息。该技术强大的原因如下:
- **便于查看数据**:对于新手和有经验的 Web 开发者来说,能够轻松查看服务器接收的数据非常重要。使用 `DEBUG` 类可以直接在响应页面底部查看,避免了返回 Web 连接服务器窗口并点击“状态”|“显示请求”|“显示最后请求信息”的繁琐操作。
- **适用于 COM 服务器**:在使用模拟身份运行 COM 服务器时,Web 连接服务器窗口不可见,无法查看请求信息。而 `DEBUG` 类可以让开发者在生产服务器上仍然能够查看发送到服务器的数据,这对于调试在开发机器上难以复现的生产服务器问题非常重要。
- **独立管理页面**:`DEBUG` 类有一个独立的管理 Web 页面,管理员可以通过该页面开启或关闭调试功能,还能控制是否显示 `DISPLAY MEMORY`、`DISPLAY STATUS` 和 `SHOWPLAN` 信息。
- **保护隐私**:在调试实时网站时,不希望普通用户看到调试信息。`DEBUG` 类只会为最初开启调试功能的 IP 地址用户追加调试信息,管理员可以在不被他人察觉的情况下收集生产服务器的实时调试信息。
- **查询优化分析**:`SHOWPLAN` 输出可以帮助开发者查看服务器上查询的优化情况。开发者可能在本地创建了索引,但服务器上没有,通过 `SHOWPLAN` 可以发现这类问题。`DEBUGPROCESS` 类创建了一个 `CSHOWPLANRESULTS` 属性,`QUERYENGINE` 类会更新该属性,每次查询后,`DEBUGCLASS` 会将 `SHOWPLAN` 结果输出。
- **错误处理**:如果 `WCONNECT_OVERRIDE.H` 文件中的 `DEBUGMODE` 常量设置为 `.F.`,`DEBUG` 类的 `ERROR()` 方法会返回一个显示错误信息和完整调用堆栈的 Web 页面,使用了 Visual FoxPro 7 的 `ASTACKINFO()` 函数。同时,它会将错误发生时的环境快照保存到 `TODOMAIN` 中 `oDebug` 配置对象指定的 `DEBUGTEMPPATH` 目录下,保存的文件包括:
- 使用 `SAVE TO` 保存的内存文件,方便恢复错误发生时的内存变量。
- 包含 `LIST STATUS` 信息的文本文件。
- 包含 `LIST MEMORY` 信息的文本文件。
要将 `DEBUGCLASS` 类集成到继承树中,需要在 `CLASS_TOP` 中进行操作。`CLASS_TOP` 类基于 `WCONNECT.H` 文件中的 `WWC_PROCESS` 常量定义。可以使用 `WCONNECT_OVERRIDE.H` 文件覆盖 `WCONNECT.H` 中的设置,将 `DEBUGCLASS` 集成到继承树中。`WCONNECT_OVERRIDE.H` 文件内容如下:
```plaintext
*--- HAC Note:Custom settings for todo application
#UNDEFINE DEBUGMODE
#UNDEFINE WWC_PROCESS
#DEFINE DEBUGMODE .f.
#DEFINE WWC_PROCESS DEBUGPROCESS
```
这样,`CLASS_TOP` 会从 `DEBUGPROCESS` (当前 `WWC_PROCESS` 的值)而不是 `WWPROCESS` (旧的 `WWC_PROCESS` 值)继承,而 `DEBUGPROCESS` 基于原来的 `WWPROCESS`。要继承 `DEBUGPROCESS`,需要使其可访问。在 `TODOMAIN` 顶部,有一系列 `SET PROCEDURE TO` 命令可以使这些类定义可用。如果 EXE 作为 COM 服务器运行,所有嵌入式 PRG 文件会自动可用;如果以文件模式运行,则需要通过 `SET PROCEDURE` 语句手动使这些类库可用。
#### 3. DEBUGCLASS 管理页面
`DEBUG.WCT` 是一个模板页面,通过直接访问该页面来执行。该文件位于网站虚拟目录下的 `admin` 目录中。建议在单独的浏览器中打开该页面,这样可以使用该浏览器切换主浏览器窗口中表单的响应信息显示。`WCT` 扩展名由 `TODOMAIN` 程序处理,并由 Web 连接 `WWSCRIPTMAP` 类评估。运行该页面时,需要将当前 IP 地址插入文本框。点击“切换调试信息”按钮会在应用程序的 INI 文件中写入设置 `SHOWDEBUGINFO=ON`,并在 INI 文件中创建一个名为 `DEBUG` 的新节,示例如下:
```plaintext
[Debug]
Debugip=127.0.0.1
Showdebuginfo=YES
Showmemory=YES
Showstatus=YES
Debugadminpath=\webradsource\todosource\wwwroot\todo\admin\
debugtemppath=\webradsource\todosource\todo\temp\
```
`DEBUGIP` 项会设置为 `DEBUG.WCT` 表单上显示的 IP 地址。勾选“显示 DISPLAY MEMORY”或“显示 DISPLAY STATUS”复选框会相应地设置 INI 文件中的条目。这些设置保存在 INI 文件中,因为它们需要在每次请求之间保留,并且不与特定用户关联,所以不适合存储在 `WWSESSION` 表中。第一次点击“切换调试信息”按钮时,会将这些条目写入 `TODO.INI` 文件,之后任何请求生成的响应页面底部都会追加调试信息。
对于新的 Web 连接开发者来说,这些信息可以帮助了解发送到服务器的数据以及请求的处理方式。所有列出的
0
0
复制全文
相关推荐










