遇难,急切请教!!!!

zhitaoliu 2003-10-08 04:52:33
在下asp新手,编一数据库查询软件,查询在sql2000数据一切正常,但查Oracle数据库时同一个函数(自编,用于将出生日期由数据转换成“年月日”形式),在第一层页面上运行正常,但第二层(显示人员详细信息)时出错,提示类型不匹配,用cint强制类型转换时溢出,用clng或cdbl均提示“无效使用null:clgn(或cdbl)”,百思百试百问不得其解,向众高手求助,多谢!
函数如下:
FUNCTION showbirthday(csrqs)
dim tian,jiliang,yue,eryue,rns,rnys,pns,pnys,pingnian,runnian,niancha
dim year,month,date
pingnian=365
runnian=365*4+1
niancha=(365*4+1)*365
rns=Cdbl(csrqs)\CLng(runnian)
rnys=CLng(csrqs) mod runnian
pns=rnys\pingnian
pnys=rnys mod pingnian
if rnys=0 then
year=1899+rns*4
month=12
date=31
else
select case pns
case 0
year=1899+rns*4+1
tian=rnys
case 1
if pnys<=1 then
year=1899+rns*4+pns
tian=rnys
else
year=1899+rns*4+pns+1
tian=pnys-1
end if
case 2
if pnys<=1 then
year=1899+rns*4+pns
tian=rnys-366
else
year=1899+rns*4+pns+1
tian=pnys-1
end if
case 3
if pnys<=1 then
year=1899+rns*4+pns
tian=rnys-366-365
else
year=1899+rns*4+pns+1
tian=pnys-1
end if
case 4
year=1899+rns*4
tian=365-1
end select
end if
yue=1
jiliang=31
if tian=0 then
year=year-1
month=12
date=31
else
if (year mod 4)=0 then
eryue=29
else
eryue=28
end if
do while (yue<12) and (tian>jiliang)
select case yue
case 1,3,5,7,8,10
jiliang=31
case 4,6,9,11
jiliang=30
case 2
jiliang=eryue
end select
if tian>jiliang then
yue=yue+1
tian=tian-jiliang
end if
loop
month=yue
date=tian
end if
showbirthday=cstr(year)&"年"&cstr(month)&"月"&cstr(date)&"日"
end function
...全文
25 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bananasmiling 2003-10-08
  • 打赏
  • 举报
回复
action

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧