利用IDC实现远程数据库访问.doc_第1页
利用IDC实现远程数据库访问.doc_第2页
利用IDC实现远程数据库访问.doc_第3页
利用IDC实现远程数据库访问.doc_第4页
利用IDC实现远程数据库访问.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用IDC实现远程数据库访问(北京师范大学计算中心 马秀麟)摘 要本文讨论了在Windows NT网络下实施远程数据访问的一种方法。本文从网络系统选型,配置数据源,设计IDC查询文件和构造查询结果展示模板等方面入手,全面地论述了利用IDC方法和Internet技术实现远程网络数据库访问的实施技术和具体过程。关键词:Windows NT Server,网络数据库,远程访问,IDC文件, 模板文件,表单,SQL语句Keywords: Windows NT Server,Network Database, IDC, HTX, Form, SQL一、引言 随着计算机网络技术的发展,各校校园网和局域网络在管理工作中得到日益广泛的应用。除了使用学校的校园网外,出于管理方面的考虑,我校各职能部门都构建了自己的局域网,利用局域网协助工作人员进行部门内的日常事务处理。然而职能部门提供的服务应该是全校性的,职能部门必须能够提供供全校师生访问的数据库管理系统,这是局域网络难以解决的任务。另一方面,由于经费短缺,要求各职能部门重新构建面向全校的大型数据库也是不现实的。综合考查各种解决方案,校长办公室在不改变原有的Windows NT局域网络系统结构的情况下,利用Windows NT Server系统附带的IIS提供的IDC(Internet Database Connector)技术,实现了远程数据库的访问。二、系统实现过程、选择支持远程数据查询的支撑平台由于Windows NT Server内含的IIS(版本2.0以上)提供Internet Database Connector (Internet数据库连接器,简称IDC)技术,而且当前我校大多数职能部门的内部服务器都采用了Windows NT Server系统,所以我们现有的Windows NT服务器和IIS服务功能就提供了IDC支持,我们不必要为构建一个新的远程数据库访问系统进行二次投资。同时,由于IDC技术可以容易地将数据库和Internet网络主页联系起来。基于上述原因,我们可以选用IDC或者ASP技术实现远程数据库访问。当前,校长办公室就是以此系统作为支撑平台的局域网和远程网络服务系统。、设置ODBC数据源IDC数据库访问要求ODBC提供操作数据源。ODBC支持多种类型的数据库,只不过不同类型的数据库要使用对应的驱动程序负责对数据库的具体操作。因此,要利用IDC技术从远程访问服务器上的数据库,必须设置数据库的驱动程序,使远程访问能够激活数据库对应的驱动程序,从而打开数据库,执行数据库的查询、修正和删除操作。这里,我们假设要访问的数据库是Microsoft Access 97平台的数据库文件,因此我们需要安装Microsoft Access 97库文件的驱动程序。其实我们在服务器上安装Office 97时就已经安装了Microsoft Access 97的ODBC驱动程序,此时需要我们做的工作就是把数据库文件指定为系统数据源,并给予数据源名称,以供IDC程序的运行。下面我们以数据库YJS.MDB(我校研究生基本情况数据库,其中包含在校生的三张数据表,分别为96级研究生基本情况表YJS96,分别为97级研究生基本情况表YJS97和分别为98级研究生基本情况表YJS98)为例说明数据源的设置方法:在服务器Windows NT Server的桌面上单击【我的电脑】【控制面板】,选择程序【ODBC数据源】图标,打开ODBC数据源设置窗口;选择选项卡【系统DSN】,打开设置系统数据源对话框,在此对话框中选择【添加】按钮,系统提示各种形式数据库驱动程序,此时我们可以选择【Microsoft Access 97 Driver(*.Mdb)】然后选择【完成】按钮,启动Access 97 数据库文件驱动程序,并进入Access 97数据源配置窗口。在Access 97数据源配置窗口的【数据源名:】文字框中输入要定义的数据源名称,数据源名称可由用户根据需要随意规定。这里我们要把服务器C盘DBASE目录下的研究生数据库YJS.MDB定义为数据源,因此我们可以定义数据源名称为XXYJS。正确地定义了数据源名称后,单击此对话框上的按钮【选取】,在系统提示出的服务器磁盘目录列表框中选择服务器的C盘DBASE目录,并选取文件YJS.MDB。最后对自己的设置【确定】。这样,我们已经把YJS.MDB数据库设置为系统数据源,并命名为XXYJS,在以后的远程查询操作中,我们就可以使用数据源名称XXYJS来代表研究生数据库了。、设计运行在服务器上的数据查询语句设计利用IDC进行数据库操作的核心步骤,就是设计执行查询操作的IDC文件,其基本格式如下: Datasource: 数据库名称 Username: 使用者 Template: 查询模板文件名 SQLStatement: SQL语句其基本含义解释为:在 Datasource后面设置数据库名称,数据库名称就是在ODBC中设置的“数据源名称”;在 Template后面说明查询模板文件名,说明用于处理数据查询结果的模板文件的名称;在SQLStatement: 后面说明要执行的具体SQL语句,由SQL语句的内容决定执行何种操作,如果是一个查询语句,则可以完成数据查询,将查询结果送入指定的模板文件,如果是一个修改语句,则利用主页表单提供的数据对远程数据库内容进行修改。例如:Datasource:xxyjsTemplate:yjs.htxSQLStatement:SELECT * FROM yjs98+Where 备注=%BZ% and 姓名 like %XM%+Order by 备注,学号说明:在上面的程序中,XXYJS是我们在设置数据源时定义的数据源名称,它指向存放在服务器C盘DBASE文件夹下的数据库文件YJS.MDB,其中数据库YJS.MDB中包括三张数据表,分别为YJS96、YJS97、YJS98,分别对应于96级、97级、98级研究生的基本信息。至于查询任务使用数据库YJS.MDB中的哪一张数据表,由下面的SQL语句限定,在这里语句SQLStatement:SELECT * FROM yjs98说明是从数据表YJS98中查询信息。BZ和XM分别为上级程序语句提供的变量名称,其中存储的是待查询人员的姓名项和备注项的值。这些变量可由表单输入语句提供,也可由超级链接语句直接提供。另外,BZ两端的%说明BZ是一个变量名称,系统在使用时需自动利用它的值。XM两端的%也代表XM是一个变量,但紧跟XM后,也有一个%,此%说明这个查询是一模糊查询。、在主页文件中设置表单输入语句主页文件是一个HTML文件,在HTML文件中以POST方式将输入本主页文件表单的数据传递到IDC文件中,以供IDC文件中的SQL语句使用。HTML文件中的表单语句应该满足如下条件:FORM语句中以POST方式传递数据;ACTION后填写要执行查询的IDC文件的文件名称;一组表单输入语句;一条表单提交和表单重新设置的语句。例如: 除了可利用表单输入语句为IDC文件提供数据外,我们还可以利用超级链接语句将变量送入IDC文件中。例如:a href=kxdetail.idc?xm=&bz= target=_blank 此语句经常出现在模板文件中,其基本作用为将上一次查询的结果传送到另一个IDC文件中,以便根据此查询结果进行另外的查询。、设计查询结果模板文件设计利用IDC进行数据库操作的第二步就是准备一个显示查询结果的HTX文件,在HTX文件中,我们除了可以使用HTML文件中的一般语句,还可以使用HTX中独有的指令。 % if % %Endif% 查询语句开始得到此字段的查询结果值条件判断语句当前记录号查询语句结束例如: 研究生数据查询模板文件 研究生信息查询 姓名性别民族年龄 学号系所简称专业名称备注 说明:与普通的主页文件一样,我们可以把已经编制好的HTML文件、IDC文件和HTX文件存储在WWW服务器的特定文件夹中,以供远程用户访问这台服务器时访问。需要注意的是,普通主页文件的浏览和解释是在客户终端由浏览器负责解释处理的,但IDC文件是在WWW服务器端,由服务器附带的HttpODBC.DLL程序负责解释处理的。也就是说,IDC文件实在服务器端执行的,因此,在配置WWW服务器时,我们必须把IDC文件存放在WWW服务器具有执行属性的文件夹中,或者把存放IDC文件的文件夹利用IIS管理工具赋予【读取】和【执行】权限。三、以WWW服务器实现网络数据库过程中出现的问题1、存储数据查询命令的文件夹必须具有运行脚本和读取数据的权限在远程数据查询实施的过程中,我们曾经较长的一段时间为一个问题所困扰,那就是在我们的HTML、IDC和HTX文件都设置正确无误的情况下,系统总是不能执行远程数据查询操作,而且提示“数据操作有问题!”于是我们一次又一次的检查IDC文件和HTX文件,仍然不能实现远程数据功能。后来,我们无意中发现了自己的一个小失误,那就是没有赋予存储IDC文件的文件夹可“执行脚本”权限,服务器系统不允许执行IDC文件中的文件查询操作。因此,我们执行【Microsoft Internet Server 管理工具】,赋予该文件夹可“执行脚本”权限。其具体过程为:双击WWW服务器打开WWW服务器配置对话框,在【目录】选项卡中找到存放IDC文件的文件夹或者其上级文件夹,使其【执行】单选框生效,最后【确定】,系统调试成功。需要说明的是:在WWW服务器上赋予可“执行”权限的文件夹不要太多,特别是不应该允许一个文件夹同时具有可“执行”权限和文件上载权限。如果存在同时具有可“执行”权限和文件上载权限的文件夹,其他用户就可能把自己的服务器控制模块上载到此文件夹中,接管对服务器的控制权,服务器的安全性就很可虑了。2、远程数据库维护中的数据约束在校办EMIS系统中既实现了局域网内部的数据管理,同时又为远程用户准备了远程数据操作,和局域网用户使用局域网络中的数据库一样,远程数据的维护也必须考虑到数据的完整性约束问题。在校办EMIS系统的具体实施过程中,系统设计为在HTML文件中以表单形式向浏览器中输入数据,为了进行数据的合法性检查,我们向表单处理子句中加入了两条指令,一条是说明要对表单数据进行数理的远程数据库操作文件(IDC文件),另一条激活一个JavaScripts程序块,该程序块负责对表单数据进行检测,并剔除非法数据。下面我们以对学生的数据插入为例说明这个具体的实施过程:远程数据库需要插入三个字段,分别为姓名、学号和年级,系统规定姓名不能为空字符串,学号为8位数码。程序中,我们要做的工作是输入三个变量姓名、学号和年级的值,这一点我们可以使用HTML语言中的表单输入器来实现,由于本程序要求对输入的数据进行检查,所以用户向表单输入器输入数据完毕,系统应该启动数据合法性检查语句,因此程序中的表单输入语句应该包含激活数据合法性检查模块的子语句。这里,Checkin是一段负责数据合法性检查的Javascripts程序,其参数(Form1)就是我们输入数据的表单名称。上述语句中的子语句可以分别解释为:ACTION=BZK1.IDC,说明服务器上负责处理用户通过表单输入数据的程序名称为BZK1.IDC。METHOD=POST 说明表单数据的传输模式为POST.NAME=Form1 定义本表单的名称为Form1。OnSubmit=return checkin(Fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论