资源描述
学士学位毕业论文
目 录
1网上银行概述 3
1.1网上银行简介 3
1.2网上银行个人信用管理的前景及趋势 3
1.3网上银行主要实现技术 3
1.3.1 ASP (Active Server Pages) 3
1.3.2 ADO (Active Data Object) 4
1.3.3 JAVASCRIPT 4
1.3.4 VBSCRIPT 4
1.3.5 SQL (Structured Query Language) 5
1.3.6 IDC 6
2网上银行解决方案和平台 6
2.1硬件结构及网络拓扑图 6
2.2软件环境 7
2.2.1 操作系统 7
2.2.2 数据库选择 7
2.2.3.开发语言和工具的选择 7
2.3 C/S模式 or B/S模式 7
3.系统分析与设计 9
3.1 总体需求分析 9
3.2系统的结构图 (见图2) 10
3.3网上银行业务流程 10
4.关键技术与算法 12
4.1 对ADO及记录集(Recordset)的操作 12
4.1.1 ADO中的连接(Connection) 12
4.1.2 ADO记录集(Recordset) 13
4.2 计算本息和及相应内部转帐处理 15
4.2.1 活期转定期处理(IN_hqtodq.asp) (见图6) 15
4.2.2 定期转活期处理(IN_dqtohq.asp) (见图7) 17
4.3 管理端用户管理功能的实现 (见图8) 19
4.3.1 使用Isempty检查按钮的状态 19
4.3.2 调用command实现删除用户功能 20
5.总结 20
5.1系统存在的不足和缺陷 20
5.2开发过程中曾遇到的问题和解决 21
5.3感想 22
参考文献 23
网上银行个人信用分析与设计
【摘要】从世界上第一个网上银行——美国安全第一网上银行(Secutriy First Network Bank简称SFNB)1995年开业以来,银行业对Internet的应用如雨后春笋。在这种背景下,中国各家银行也纷纷开展了网上银行的相关业务。本文阐述了一个网上银行的构建过程以及使用的开发语言,数据库和硬件平台。重点针对网上银行个人信用问题,提出了自己的技术解决方案,并详细论述了方案的技术实现。
【关键词】网上银行,在线金融服务,ADO,ASP,VBSCRIPT,JAVASCRIPT,ADO
The analysis and design of Ebank about individual credit
【Abstract】Since in the world the first ebank—the United States safety first ebank(forshort SFNB) starts practice in 1995 ,the banking grows profusely and quickly to the Internet application. Under this kind of background, Chinese each house bank also opened the exhibition in droves the net ascends the related business of the bank. This disquisition formulate a process of designing a ebank and developing language, database and hardware flat. Especially for ebank personal credit, put forward technology solution project myself and particular formulate technology realization.
【Keywords】ebank, Online Financial Services, ADO,ASP,VBSCRIPT,JAVASCRIPT,ADO
1网上银行概述
1.1网上银行简介
广义上的网上银行是指通过计算机网络与Internet相连,使用相关技术实现银行与客户之间安全、方便、友好联接的虚拟银行,可为客户提供跨越时空、综合、统一、实时的各种金融服务产品。
狭义的网上银行是指通过自身的计算机网络和ATM、POS、TBS等先进的电子设备开办金融业务的银行。
网上银行的出现不仅使金融机构不再需要大量的分支机构,还改变了原来金融机构在服务时间上的限制,每时每刻网上银行都能提供完全一致的服务,真正实现了资金在流动中增值。网上银行的运行模式降低了交易费用,减少了营运成本。网上银行先进的服务手段、丰富的服务内容将会吸引更多的客户。
这次毕业设计所完成的网上银行——江西财经大学网上银行除了用B/S模式让用户能完成网上银行基本功能外,更增加了管理端的处理和个人信用额度方面的处理。
1.2网上银行个人信用管理的前景及趋势
在国内,自1998年3月中国银行完成第一笔网上银行业务以来,1999年6月招商银行、1999年8月建设银行、2000年1月工商银行也相继推出网上银行业务。但是在个人信用方面的管理相比之下却相当滞后。中国的金融立法还停留在“分业管理”的层次上。2000年6月28日, 180万上海市民率先拥有了由资信公司作出的个人信用报告, 填补了我国个人信用记录方面的空白。市场经济其实就是信用经济,因此为了规避金融风险,网上银行个人信用管理绝对是一个时期内网上银行业的一个热点问题。
1.3网上银行主要实现技术
1.3.1 ASP (Active Server Pages)
ASP (Active Server Pages)是服务器端设计环境,可用于创建逼真动人的 Web 应用程序。ASP 页是包含服务器端脚本的 HTML (Hyper Text Markup Language)页,Web 服务器先处理这些脚本然后再发送到用户浏览器。不同于以往较难创建的公用网关接口 (CGI) 应用程序,ASP 极大地简化了 Web 应用程序的开发过程。只需几行脚本,就可以将数据库连接或高级自定义功能添加到 Web 页。除了普通的脚本任务,也可以使用 ASP 将脚本扩展到 COM ( Component Object Mode ) 组件。这些可重复使用的程序模块使您可以将脚本集成为完整的应用程序,以便执行复杂任务,如电子商务的事务处理。
1.3.2 ADO (Active Data Object)
一个优秀的Web网站总有强大的数据库作为支撑。特别是网上银行的转账业务对数据库的要求很高,它的本质就是对数据库的操作。在Asp脚本中可以通过三种方式访问数据库:传统的IDC(Internet Database Connector)方式,ADO (Active Data Object)方式以及RDS(Remote Data Service)方式。从概念上讲,这三种访问方式对数据库的访问是由IIS来完成的。Web浏览器用HTTP协议向Internet信息服务器(IIS)递交请求,在由IIS执行访问数据库的操作,并以一个HTML格式的文档作为回答。
本次设计采用了ADO技术,它的优点在于易于使用、高速度、低内存支出和占用磁盘空间较少。ADO同时具有远程数据服务(RDS)功能,通过RDS可以在一次往返过程中实现将数据从服务器移动到客户端应用程序或Web页,在客户端对数据进行处理,然后将更新结果返回服务器。它建立在应用程序编程接口OLEDB之上,特别适用于在Internet这种面向非连接的网络上使用。
1.3.3 JAVASCRIPT
JAVASCRIPT是最早的浏览器脚本语言,用于给其web服务器和浏览器增加交互功能。它能够控制浏览器的行为和内容,但不具备诸如文件处理等方面的控制功能。事实上,出于安全考虑,JAVASCRIPT是不允许这样做的。因为我们不希望web页删除硬盘上的文件。JAVASCRIPT用于创建高效的,小型的应用程序,这些应用程序可以做许多事情,从完成重复性任务到处理用户生成事件(如单击鼠标,键盘响应等),但JAVASCRIPT的功能因安全方面的原因受到了限制。
1.3.4 VBSCRIPT
VBSCRIPT是基于VISUAL BASIC编程语言,用来直接与JAVASCRIPT竞争,VBSCRIPT更吸引初学者,它不区分大小写,而且不过分注意代码方面的细节。正是由于这些优点,使它的运行速度慢,效率也低。VBSCRIPT最大的缺点是没有一个除MICROSOFT公司以外的浏览器支持由VBSCRIPT编写的客户端脚本。可以看到JAVASCRIPT 和VBSCRIPT都依赖于称为脚本引擎的模块,模块被内置到浏览器中,以动态方式处理指令。
1.3.5 SQL (Structured Query Language)
SQL全称是“结构化查询语言(Structured Query Language)”, SQL语言结构简洁,功能强大,简单易学。如今无论是像SQL server ,Oracle ,Sybase,Informix这些大型的数据库管理系统,还是像PowerBuilder,Visual Foxporo这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
Structured Query Language包含4个部分:数据查询语言DQL-Data Query Language SELECT;数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE;数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP;数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK。
SQL广泛地被采用正说明了它的优点:
(1)非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
(2) 统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:
● 查询数据
● 在表中插入、修改和删除记录
● 建立、修改和删除数据对象
● 控制对数据和数据对象的存取
● 保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。
(3) 是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。
1.3.6 IDC
Internet数据库连接器IDC(Internet Database Connector)是Windows NT上Internet信息服务器IIS(Internet Information Server)所提供的一种动态网页技术。远程用户通过单击HTML连接或通过插入和发送HTML表单即可执行IDC脚本,实现对数据库的操作和管理。
IDC使用两类文件实现访问数据库及构造输出Web页面。这两类文件是Internet数据库连接器文件(.idc)和HTML扩展名文件(.htx)。
Internet数据库连接器文件(.idc)包含连接适当的ODBC数据源所必需的信息和所要执行的SQL语句,以及HTML扩展文件(.htx)的名称和位置。
HTML扩展文件(.htx)实际上是基于HTML语言的模板,其主要编写规则仍按照HTML语言,仅仅是在HTML规则内增加了特定的标示符,用以标示数据库信息部分。当利用IDC文件进行完数据库操作后,系统将按htx文件中标示的格式将相关信息并入htx文件,形成页面之后返回给客户的Web浏览器。Htx文件主要完成对数据输出格式的控制。
2网上银行解决方案和平台
2.1硬件结构及网络拓扑图
网上银行系统采取客户/网银中心/业务系统三层体系结构,提供信息服务、客户服务、帐务查询和支付转帐功能。其中包括:
1. 过滤路由器、防火墙:对流入银行的数据流进行过滤,并隔离银行内部网络与Internet。
2. Web/Application服务器:网上银行的所有应用程序均安装在此服务器上,当Web服务器接收到客户的交易请求后,先进行一系列的安全检查,包括密码核验、Session检查等,只有通过安全检查后的交易请求才转发至Application服务器,通过启动指定的代理程序到本地数据库或通过通讯服务器到业务主机取得相应的结果。
3. 数据库服务器
4. 通讯服务器
5. 内部管理和业务操作工作站。
2.2软件环境
2.2.1 操作系统
Web/Application服务器、数据库服务器,通讯服务器均对稳定性有极高的要求,所以应采用Windows 2000 Server SP3,因为它有优良的性能和稳定性。而其他内部管理和业务操作工作站则采用Windows 2000 Professional。
2.2.2 数据库选择
数据库采用微软的SQL-Server2000数据库,它支持多客户应用程序和企业级的应用程序。
2.2.3.开发语言和工具的选择
经过选择和在老师的指导下,我们决定用ASP+JAVASCRIPT+VBSCRIPT作为开发的语言,同时采用MicroMedia公司出品的DreamweaverMX作为编辑网页和其他代码的开发工具,因为Dreamweaver相比Microsoft的Frontpage来说更适合直接编写代码,同时也支持所见即所得。
2.3 C/S模式 or B/S模式
随着互联网应用软件的发展以及组件技术的出现,软件体系结构逐渐从原C/S结构模式转向更适合互联网应用的B/S结构模式,两层的C/S结构也逐渐转向三层或多层结构。C/S结构和B/S结构各自的优缺点对比如下:
C/S结构:能够保证数据的一致、冗余小,客户端负担较轻;无法保证数据安全(从客户程序中可以得到数据库密码),网络资源消耗较大(因为要保持数据库连接),并发度较低(不支持事务处理),升级不够方便,对数据库的改动将导致应用程序的改动。
B/S结构:能够保证数据的一致、冗余小,客户端负担较轻;能够保证数据安全,能够对封装业务规则,网络资源消耗减轻(无需保持连接),并发度提高(支持事务处理)。它是一种零客户配置的多层分布式应用和web技术的结合,客户端的用户能仅通过浏览器发出某个请求,通过服务器端的web服务器应用程序和数据库服务器之间一系列复杂的操作之后,获取相应的信息。因此,这类结构的应用的开发重点是web服务器应用程序。
web服务器应用程序是web服务器在功能上的扩展。web服务器应用程序运行在服务器端,能通过internet传递象HTML网页或XML文档之类的web内容。web服务器应用程序的例子包括网站的访问控制,定单的生成和信息的收集和反馈等。web服务器应用程序从web服务器接收HTTP请求信息,根据这些请求信息执行动作形成响应信息,并将这些响应信息传回web服务器。
因此我们决定采用ASP开发基于B/S模式的网上银行。
2.4 ASP(Active Server Pages)动态网页设计技术
ASP每一种对象的快速浏览:(见图1)
(1)Request对象为脚本提供客户端在请求一个页面或传送一个窗体时提供的所有信息,这包括能够标识浏览器和用户的HTTP变量,存储他们的浏览器对应于这个域的cookie,以及附在URL后面的值(查询字符串或页面中<Form>段中的HTML控件内的值)。它也给我们提供了通过Secure Socket Layer(SSL)或其他的加密通信协议访问证书的能力,并提供有助于管理连接的属性。
(2)Response对象用来访问所创建的并返回客户端的响应。它为脚本提供了标识服务器和性能的HTTP变量,发送给浏览器的信息内容和任何将在Cookie中存储的信息。它也提供了一系列用于创建输出页的方法,如无所不在的Response.Write方法。
(3)Application对象是在为响应一个ASP页的首次请求而载入DLL时创建的,它提供了存储空间用来存放变量和对象的引用,可用于所有的页面,任何访问者都可以打开它们。
(4)Session对象是在每一位访问者从Web站点或Web应用程序中首次请求一个ASP页时创建的,它将保留到默认的期限结束(或者由脚本决定终止的期限)。它与Application对象一样提供一个空间用来存放变量和对象的引用,但只能供目前的访问者在会话的生命期中打开的页面使用。
(5)Server对象提供了一系列的方法和属性,在使用ASP编写脚本时是非常有用的。最常用的是Server.CreateObject方法,它允许我们在当前页的环境或会话中在服务器上实例化其他COM对象。还有一些方法能够把字符串翻译成在URL和HTML中使用的正确格式,它通过把非法字符转换成为正确、合法的等价字符来实现。
(6)ASPError对象通过Server对象的GetLastError方法使用。它提供了发生在ASP中的上一次错误的详细信息。
(7)ObjectContext对象:ObjectContext对象可以用来控制ASP的执行。这种执行过程由Microsoft Transaction Server(MTS)来进行管理。
下图中表现了ASP和创建及服务于ASP页的过程之间的关系。
ASP对象的快速浏览 图1
3.系统分析与设计
3.1 总体需求分析
网上银行客户端分为个人银行,企业银行,网上支付,网上证券4个模块。其中个人银行又分为以下功能模块:
(1)我的帐户:分为活期帐户,定期帐户和交易记录。用户可以看到自己名下所有相应帐号的全部信息以及交易记录。
(2)内部转帐:分为活期转活期,定期转活期以及活期转定期。
(3)转帐支付:只开通了同城行内转帐,可以在不同用户的活期帐户间相互转帐。
(4)预约业务:分为大额提现预约、汇票签发、零币兑换。用户可以使用留言版告知工作人员,以提前做好准备。
(5)帐户管理:用户可以通过选择加户或减户操作将相应的帐户挂在或解除与自己用户名的关系。
(6)网上挂失:用户通过提供的相应资料可以在网上挂失自己的帐户,过相应的期限可以找回帐户。
网上银行管理端分为以下几个功能模块:
(1)用户管理:可以对用户进行增加用户,修改用户资料,删除用户的操作。
(2)帐户管理:可以对帐户进行增加帐号,修改帐号资料,删除帐号的操作。
(3)利率管理:可以根据中国人民银行发布的利率表修改相应的利率。
(4)站内公告管理:为BBS管理端的入口,可以对留言及意见做出回复。
3.2系统的结构图 (见图2)
江西财经大学网上银行
网上挂失
预 约 业 务
支付转账
内部转账
网上证券
网上支付
个人银行
企业银行
我的账户
账户管理
加户
同城行内转账
减户
零币兑换
汇票签发
大额提现预约
活期账户
定期账户
交易清单
活期转活期
活期转定期
定期转活期
系统结构图 图2
3.3网上银行业务流程
1.客户端业务流程 (见图3)
浏览网页
检查合法性
用户
未通过
调入用户相应信息
登陆 通过
注册
注册新用户
数据库
客户端业务流程 图3
其中,当用户注册发生错误(如用户名重复,资料填写错误)时,系统会引导到相应的出错处理页面。当用户丢失密码时,可以通过找回密码功能填写所有的资料来找回密码。
2.管理端业务流程 (见图4)
系统报错
检查合法性
未通过
管理员
调入相应管理页面
登陆 通过
数据库
管理端业务流程 图4
客户端个人银行功能 图4
4.关键技术与算法
4.1 对ADO及记录集(Recordset)的操作
4.1.1 ADO中的连接(Connection)
用于表示和数据源的连接,以及处理一些命令和事务。通过它可以从应用程序访问数据源,是交换数据所必需的环境。
ConnectionString属性
在使用Connection对象的Open方法打开数据源时,连接参数的字符串,可读写。字符串中包含以下内容:
Provider OLEDB 提供者的名字。
DataSource 指定数据源的名字。
UserID 指定连接数据源时的用户ID。
Password 指定连接数据源时用户的密码。
FileName 指定要连接的数据库名字。
例如:adduser.asp中连接数据库代码如下:
set conn=server.createobject("adodb.connection")
connstr="provider=sqloledb;"& "user id=ebank; password=ebank;" &"initial catalog=ebank;"& "data source=192.168.0.199"
4.1.2 ADO记录集(Recordset)
记录集(Recordset)的方法主要有以下几种:
(1)Open、Close方法
Open方法的用法:rs.Open sqlstr,con,Cursor,lock,Options
其中:rs是我们生成的Recordset对象;sqlstr是查询字符串;con连接字符串,也可以是Connection对象;cursor是游标类型;lock是加锁类型;options是参数类型,可取2个值: adCmdtext是SQL字符串,adCmdStoredProc是存储过程。
Close方法用法为:rs.close关闭Recordset对象。
(2)AddNew方法
这个方法在数据库中添加一个空记录:rs.addnew
在空记录中加入数据,用以下方法:
rs(字段1)=值1
rs(字段2)=值2
......
rs.update
(3)Delete方法
rs.delete删除当前记录
(4)Move方法
这个方法可以在记录集内漫游,用法为:rs.move num,Startrow。
其中:rs是Recordset对象,num是指要移动多少行,Startrow是开始的行标签。
(5)Movefirst、Movelast、Movenext、Moveprevious方法
Movepervious把当前记录指针向前移动一条记录。
Movefirst把当前记录指针移动到表的开始。
Movelast把当前记录指针移动到表的末尾。
Movenext把当前记录指针向后移动一条记录。
(6)Requery方法
对最初执行的查询再执行一遍。
找回密码界面图5
例如:在showpsw.asp中,使用了对数据集反复判定是否为空以判断出出错的地方,定向到相应的报错页面。(找回密码界面见图5)部分源代码如下:
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="provider=sqloledb;"& "user id=ebank;password=ebank;" &"initial catalog=ebank;" &"data source=192.168.0.199"
Conn.Open connstr
Response.write Conn.State //回写Conn的状态
set rs = Server.CreateObject("ADODB.Recordset")
set rs2= Server.CreateObject("ADODB.Recordset")
set rs3= Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM U_info where username='"&username & "'"
rs.open sql,Conn
if not (rs.bof or rs.eof) then '记录1不为空,说明用户存在
sql2="select * from u_info where username='"&username&"' and truename='"&truename&"' and idcardNo='"&idcardNo&"' and phone='"&phone&"' and address='"&address&"' and email='"&email&"'"
rs2.open sql2,Conn
if not (rs2.Bof or rs2.eof) then 如果记录2不为空说明其他条件输入正确
isun="true"
rs2.close()
sql3="update u_info set password='"&changedpsw&"' where username='"&username&"'"
资料吻合,将密码改为用户输入的新密码
rs3.open sql3,Conn
response.redirect "ok.asp" 重定向到操作成功页面
else response.redirect "error.asp?error=003" 记录2为空说明其他条件错误
end if
else 记录1为空说明该用户不存在
isun="true"
rs.Close()
response.redirect "error.asp?error=002"
'记录为空时 用户不存在
Session("username") = request.form("Username")
4.2 计算本息和及相应内部转帐处理
4.2.1 活期转定期处理(IN_hqtodq.asp) (见图6)
活期转定期处理(IN_hqtodq.asp) 图6
流程:当用户选择了转为定期的活期帐户进行该操作时,首先在活期帐户的销户日期插入当前日期并根据利率表中的活期利率及存款时间计算出本息和并写入金额项。然后将该帐户当前资料写入历史帐户表(historyaccount),在帐户表中删掉该记录,然后新建一个定期帐户,帐号不变且金额为活期结余,存款时长为用户转帐时选择的存款时长。最后将交易写入交易记录表(traderecord)。
sql2="select * from ratetable where timelength=0 and ratetype='0'"
rs.open sql2,Conn
hqrate=rs("rate") 得到活期利率,并写入变量hqrate
conn.execute "update a_account set a_deletetime='"&tradedate&"' where a_accountno like '%"&request.form("fromaccountno2")&"'"
插入销户时间
conn.execute "update a_account set a_money=a_money*(1+(select datediff(day,(select a_createtime from a_account where a_accountno like '%"&request.form("fromaccountno2")&"'),getdate())) *cast('"&hqrate&"' as float)/365) where a_accountno like '%"&request.form ("fromaccountno2")&"'" 计算本息和
sql="select * from a_account where a_accountno like '%"&request.form ("fromaccountno2")&"'"
rs3.open sql,Conn 取出帐户资料
if not (rs3.eof or rs3.bof) then
currentmoney=rs3("a_money")
createdate=rs3("a_deletetime")
conn.execute "insert into historyaccount values ('"&request.form("fromaccountno2")&"','活期','"&createdate&"','"&tradedate&"','"&request.form("moneytype2")&"',cast('"¤tmoney&"' as money),'正常','2003-05-12', '"&timelength&"')" 写入历史帐户
conn.execute "delete from a_account where a_accountno like '%"&request.form("fromaccountno2")&"'" 删除转帐的活期帐户
conn.execute "insert into a_account values ('"&request.form ("fromaccountno2")&"','"&session("username")&"','定期','"&tradedate&"',null,'"&request.form("moneytype2")&"',cast('"¤tmoney&"' as money),'正常','2003-05-12','"&timelength&"')"
conn.execute"insert into traderecord values('"&tradedate&"', '"&request.form("fromaccountno2")&"','"&request.form("fromaccountno2")&"','"&request.form("moneytype2")&"',cast('"¤tmoney&"' as money),'"&powerman&"','"&beizhu&"')" 写入交易记录表
response.redirect"ok.asp"
else response.redirect "error.asp"
end if
4.2.2 定期转活期处理(IN_dqtohq.asp) (见图7)
流程:当用户选择了转为活期的定期帐户进行该操作时,首先根据开户时间,存款时长和当前日期判断是否到期,如到期则利率根据存款时长得出,否则则取同期活期利息。在定期帐户的销户日期插入当前日期并根据得到的利率及存款时间计算出本息和并写入金额项。然后将该帐户当前资料写入历史帐户表(historyaccount),在帐户表中删掉该记录,然后新建一个活期帐户,帐号不变且金额为定期结余。最后将交易写入交易记录表(traderecord)。
活期转定期处理(IN_hqtodq.asp) 图7
sql="select * from a_account where a_accountno like '%"&request.form("fromaccountno3")&"'"
rs.open sql,Conn
timelength=rs("a_timelength")
createtime=rs("a_createtime")
'根据当前日期>=0则说明已经到期,利率根据存款时间长timelength得出,否则则以活期利率代替
conn.execute "if datediff(day,dateadd (month,"&timelength&", '"&createtime&"'),getdate())>=0 update a_account set a_state='到期' where a_accountno like '%"&request.form("fromaccountno3")&"' else update a_account set a_state='未满' where a_accountno like '%"&request.form ("fromaccountno3")&"'"
sql2="select * from ratetable where timelength like '%"&timelength&"' and ratetype='0'"
rs2.open sql2,Conn
dqrate=rs2("rate")
sql3="select * from ratetable where timelength=0 and ratetype='0'"
rs3.open sql3,Conn
hqrate=rs3("rate")
conn.execute "update a_account set a_deletetime='"&tradedate&"' where a_accountno like '%"&request.form("fromaccountno3")&"'"
'计算利息+本金
conn.execute "update a_account set a_mo
展开阅读全文