-
vfp教程之快速发布VFP数据库
ASP的基于服务器端的脚本设计思路和ADO的方便快捷,使用户在开发Web数据库时省力不少。ASP最常用的开发环境是InterDev,但InterDev比较昂贵,使用起来也比较复杂。也许我们只是想将原有的Xbase数据放到公司的Web服务器上,方便公司外部客户的查询,内部依然使用基于VFP的应用程序。下面介绍一种通过Windows95/98
+PWS+Access 2000快速实现基于VFP数据库查询的Web页面的方法。该方法同样适用于NT+IIS环境。
1.添加系统DSN
使用ASP技术的Web页能否存取某一种数据库,关键在于ODBC驱动程序,只要服务器安装了相应的ODBC驱动,你的主页就可以很方便地读取各种数据库,如Access、Excel、Foxpro、Paradox、SQL Server、Oracle等。ODBC的参数设置可以在脚本程序中直接指定,也可以把ODBC的参数设置在系统的DSN(Date Source Name)中,在脚本程序中以DSN启动数据库。使用DSN通过ODBC访问数据库的优点是,当我们改变数据库时,只要重新设置系统DSN,不需要修改程序中的ODBC参数(注意:只有系统DSN对所有用户都可见,而用户DSN和文件DSN,分别只对当前用户和安装了相同驱动程序的用户可见,不要设错了!)。添加系统DSN的步骤如下:
步骤一:经由“控制面板”→“ODBC数据源(32位)”→“系统DNS”标签,单击“添加...”按钮,出现“创建新数据源”对话框。
步骤二:从上述对话框的列表框选择“Microsoft FoxPro VFP Driver(.dbf)”项(如果没有此项可以从Office 2000或Visual FoxPro中安装,Office 2000默认并不安装VFP的ODBC),单击“完成”按钮,出现“ODBC Visual FoxPro Setup”对话框。
步骤三:在“Date Source Name”编辑框中填入数据源的名字,例如:“School”。选择自己的VFP数据库类型,可以选择DBC库或自由表的目录。通过“Browse...”按钮选择数据库或者自由表的目录。打开“Options...〉〉”,从“Collating sequence”下拉列表中选择“PinYin”,使你的中文字串按拼音排序。单击“OK”按钮,完成添加DSN。
2.在Access 2000上建立链接表
添加了VFP的DSN后,就可以在Access 2000内直接打开VFP数据库了。
步骤一:启动Access 2000选择新建“空Access数据库”,随便起一个名字,保存在任意位置,因为Access数据库仅为一个过渡,用过后就可以删除掉。
步骤二:在主窗口的快捷选单上选择“链接表...”项(你也可以用“导入...”,但当VFP数据库较大时,导入Access的数据可是很占地儿的),出现“链接”对话框,从“文件类型”下拉列表中选择“ODBC Database ()”。屏幕出现“选定数据源”对话框。
步骤三:选择“机器数据源”标签,从列表中选择你在前面定义的DSN,如School,单击“确定”按钮。
步骤四:从出现的导入对象对话框中,选择你要提供Web页查询的VFP数据库中的数据表和视图,单击“确定”后,随便指定“惟一的记录标识符”后“确定”。Access就和VFP数据库链接上了。我们现在就可以双击链接图标,浏览VFP数据了。
3.将VFP的查询移植到Access查询视图
如果想将VFP的查询在Web上实现,那就要进行这一步。这一步其实很简单,就是将VFP查询的SQL语句复制下来,然后粘贴到Access的查询对象上。需要注意的是,要将VFP的SQL语句中的分号和数据库名在新建的Access查询的SQL编辑器中删除。最后别忘了在Access中运行一下你的查询,看看是否和VFP中的一致。不过我还是建议你将VFP查询改为本地视图,这样就省去了日后维护ASP脚本的SQL了。
4.用Access生成ASP页面
步骤一:选中一个链接表或Access查询,右击鼠标从快捷选单中选择“导出...”项。
步骤二:从“导出”对话框中的“保存类型”下拉列表中选择“Microsoft Active Server”项。可以在此为你的ASP页面起一个名字(如xf)。单击“保存”按钮。
步骤三:在出现的“Microsoft Active Server页输出选项”对话框中选择HTML模板(也可不选),在“数据源名称”编辑框中填入在第一部分设定的DSN,如School。单击“确定”按钮,完成ASP页的生成。
5.添加分页浏览代码
我们生成的ASP页面是以.asp为扩展名,由于ASP是基于服务器端的脚本,所以必须将其发布到Web服务器上,才可以在浏览器中看到效果。
下面的脚本提供了分页显示查询结果功能,它是利用ADO采用带页码参数的方法控制翻页,这样的好处是可以方便地直接指定要浏览的页面。同时,只要VFP的本地视图名称不变,视图中的SQL 任意变化均不需维护ASP页面。
〈%
′将自动生成的ASP文件,由〈TABLE...〉开始全部删除,改用下列程序段。
rs.PageSize = 5
Page = CLng(Request(″Page″))
If Page 〈 1 Then Page = 1
If Page 〉 rs.PageCount Then Page = rs.PageCount
Response.Write ″〈TABLE ALIGN=CENTER BORDER=1〉 〈CAPTION〉〈B〉分页显示VFP数据库〈/B〉〈/CAPTION〉″
Response.Write ″〈TR BGCOLOR=#ffff00〉″
For i=0 to rs.Fields.Count-1
Response.WRITE ″〈TD〉″ & rs.Fields(i).Name & ″〈/TD〉″
Next
Response.Write ″〈/TR〉″
rs.AbsolutePage = Page
For iPage = 1 To rs.PageSize
Response.Write ″〈TR〉″
For i=0 to rs.Fields.Count-1
Response.WRITE ″〈TD〉″ & rs.Fields(i).Value & ″〈/TD〉″
Next
Response.Write ″〈/TR〉″
rs.MoveNext
If rs.EOF Then Exit For
Next
Response.Write ″〈/TABLE〉″
%〉
〈form action=″PageBrow.asp″ method=″GET″id=form1 name=form1〉
〈font color=″#008000″〉 共〈%=rs.PageCount%〉页
您正在浏览第〈input type=″text″ size=″2″ name=″Page″ value=〈%=Page%〉 〉页
〈/font〉
〈%
If Page 〈〉 1 Then
Response.Write ″〈A HREF=xf.asp?Page=1〉〈首页〉〈/A〉 ″
Response.Write ″〈A HREF=xf.asp?Page=″ & (Page-1) & ″〉〈前页〉〈/A〉 ″
Else Response.Write ″〈首页〉 〈前页〉″
End If
If Page 〈〉 rs.PageCount Then
Response.Write ″〈A HREF=xf.asp?Page=″ & (Page+1) & ″〉〈后页〉〈/A〉″
Response.Write ″〈A HREF=xf.asp?Page=″& rs.PageCount & ″〉〈尾页〉〈/A〉″
Else Response.Write ″〈后页〉 〈尾页〉″
End If
%〉
〈/form〉〈/body〉〈/html〉
+PWS+Access 2000快速实现基于VFP数据库查询的Web页面的方法。该方法同样适用于NT+IIS环境。
1.添加系统DSN
使用ASP技术的Web页能否存取某一种数据库,关键在于ODBC驱动程序,只要服务器安装了相应的ODBC驱动,你的主页就可以很方便地读取各种数据库,如Access、Excel、Foxpro、Paradox、SQL Server、Oracle等。ODBC的参数设置可以在脚本程序中直接指定,也可以把ODBC的参数设置在系统的DSN(Date Source Name)中,在脚本程序中以DSN启动数据库。使用DSN通过ODBC访问数据库的优点是,当我们改变数据库时,只要重新设置系统DSN,不需要修改程序中的ODBC参数(注意:只有系统DSN对所有用户都可见,而用户DSN和文件DSN,分别只对当前用户和安装了相同驱动程序的用户可见,不要设错了!)。添加系统DSN的步骤如下:
步骤一:经由“控制面板”→“ODBC数据源(32位)”→“系统DNS”标签,单击“添加...”按钮,出现“创建新数据源”对话框。
步骤二:从上述对话框的列表框选择“Microsoft FoxPro VFP Driver(.dbf)”项(如果没有此项可以从Office 2000或Visual FoxPro中安装,Office 2000默认并不安装VFP的ODBC),单击“完成”按钮,出现“ODBC Visual FoxPro Setup”对话框。
步骤三:在“Date Source Name”编辑框中填入数据源的名字,例如:“School”。选择自己的VFP数据库类型,可以选择DBC库或自由表的目录。通过“Browse...”按钮选择数据库或者自由表的目录。打开“Options...〉〉”,从“Collating sequence”下拉列表中选择“PinYin”,使你的中文字串按拼音排序。单击“OK”按钮,完成添加DSN。
2.在Access 2000上建立链接表
添加了VFP的DSN后,就可以在Access 2000内直接打开VFP数据库了。
步骤一:启动Access 2000选择新建“空Access数据库”,随便起一个名字,保存在任意位置,因为Access数据库仅为一个过渡,用过后就可以删除掉。
步骤二:在主窗口的快捷选单上选择“链接表...”项(你也可以用“导入...”,但当VFP数据库较大时,导入Access的数据可是很占地儿的),出现“链接”对话框,从“文件类型”下拉列表中选择“ODBC Database ()”。屏幕出现“选定数据源”对话框。
步骤三:选择“机器数据源”标签,从列表中选择你在前面定义的DSN,如School,单击“确定”按钮。
步骤四:从出现的导入对象对话框中,选择你要提供Web页查询的VFP数据库中的数据表和视图,单击“确定”后,随便指定“惟一的记录标识符”后“确定”。Access就和VFP数据库链接上了。我们现在就可以双击链接图标,浏览VFP数据了。
3.将VFP的查询移植到Access查询视图
如果想将VFP的查询在Web上实现,那就要进行这一步。这一步其实很简单,就是将VFP查询的SQL语句复制下来,然后粘贴到Access的查询对象上。需要注意的是,要将VFP的SQL语句中的分号和数据库名在新建的Access查询的SQL编辑器中删除。最后别忘了在Access中运行一下你的查询,看看是否和VFP中的一致。不过我还是建议你将VFP查询改为本地视图,这样就省去了日后维护ASP脚本的SQL了。
4.用Access生成ASP页面
步骤一:选中一个链接表或Access查询,右击鼠标从快捷选单中选择“导出...”项。
步骤二:从“导出”对话框中的“保存类型”下拉列表中选择“Microsoft Active Server”项。可以在此为你的ASP页面起一个名字(如xf)。单击“保存”按钮。
步骤三:在出现的“Microsoft Active Server页输出选项”对话框中选择HTML模板(也可不选),在“数据源名称”编辑框中填入在第一部分设定的DSN,如School。单击“确定”按钮,完成ASP页的生成。
5.添加分页浏览代码
我们生成的ASP页面是以.asp为扩展名,由于ASP是基于服务器端的脚本,所以必须将其发布到Web服务器上,才可以在浏览器中看到效果。
下面的脚本提供了分页显示查询结果功能,它是利用ADO采用带页码参数的方法控制翻页,这样的好处是可以方便地直接指定要浏览的页面。同时,只要VFP的本地视图名称不变,视图中的SQL 任意变化均不需维护ASP页面。
〈%
′将自动生成的ASP文件,由〈TABLE...〉开始全部删除,改用下列程序段。
rs.PageSize = 5
Page = CLng(Request(″Page″))
If Page 〈 1 Then Page = 1
If Page 〉 rs.PageCount Then Page = rs.PageCount
Response.Write ″〈TABLE ALIGN=CENTER BORDER=1〉 〈CAPTION〉〈B〉分页显示VFP数据库〈/B〉〈/CAPTION〉″
Response.Write ″〈TR BGCOLOR=#ffff00〉″
For i=0 to rs.Fields.Count-1
Response.WRITE ″〈TD〉″ & rs.Fields(i).Name & ″〈/TD〉″
Next
Response.Write ″〈/TR〉″
rs.AbsolutePage = Page
For iPage = 1 To rs.PageSize
Response.Write ″〈TR〉″
For i=0 to rs.Fields.Count-1
Response.WRITE ″〈TD〉″ & rs.Fields(i).Value & ″〈/TD〉″
Next
Response.Write ″〈/TR〉″
rs.MoveNext
If rs.EOF Then Exit For
Next
Response.Write ″〈/TABLE〉″
%〉
〈form action=″PageBrow.asp″ method=″GET″id=form1 name=form1〉
〈font color=″#008000″〉 共〈%=rs.PageCount%〉页
您正在浏览第〈input type=″text″ size=″2″ name=″Page″ value=〈%=Page%〉 〉页
〈/font〉
〈%
If Page 〈〉 1 Then
Response.Write ″〈A HREF=xf.asp?Page=1〉〈首页〉〈/A〉 ″
Response.Write ″〈A HREF=xf.asp?Page=″ & (Page-1) & ″〉〈前页〉〈/A〉 ″
Else Response.Write ″〈首页〉 〈前页〉″
End If
If Page 〈〉 rs.PageCount Then
Response.Write ″〈A HREF=xf.asp?Page=″ & (Page+1) & ″〉〈后页〉〈/A〉″
Response.Write ″〈A HREF=xf.asp?Page=″& rs.PageCount & ″〉〈尾页〉〈/A〉″
Else Response.Write ″〈后页〉 〈尾页〉″
End If
%〉
〈/form〉〈/body〉〈/html〉
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式