pb6.5中读取数据库中时间出错
ryrq在数据库中存储的值是2001.01.12 14:30:35,但是在pb6.5的应用程序中显示时出现的是???3????(设计的本意是显示日期,如2001/01/12 ),显示错误后,程序也不报错.我把代码贴出来,请哪位好心的pb高手帮忙看看,非常感激!
string zyh_fy,sfxm,wheresql_cyfy,newsql_cyfy,time
string wheresql_cybr,newsql_cybr,bqh_1,sql_text,ks_1
long br_row,fy_row,tj_row,i,lo
Double je
Date ryrq,cyrq
//ryrq和cyrq的数据格式相同
fun_brfy_init(dw_sfxm,dw_brfy)
zyh_fy = Trim(sle_zyh.Text)
time = Right(Trim(em_year.Text),2)
wheresql_cybr = " WHERE cybr" + time + ".zyh=~'" + zyh_fy + "~'"
newsql_cybr = "DataWindow.Table.Select=~"" + oldsql_cybr &
+ wheresql_cybr + "~""
dw_cybr.Modify(newsql_cybr)
dw_cybr.Retrieve()
br_row = dw_cybr.GetRow()
If br_row < 1 Then
MessageBox("注意!","无此编号!")
sle_zyh.SetFocus()
Return
End If
ks_1 = dw_cybr.object.ks[br_row]
select bqh into :bqh_1 from bqtoks where ksbm = :ks_1;
bqh_1 = right('00'+bqh_1,2)
sql_text = "SELECT zyh,tjm,sfxm,sum(je) FROM cyfy_d"+bqh_1+&
" where zyh='"+zyh_fy+"' GROUP BY zyh,tjm,sfxm"
lo = dw_cybrfy.setsqlselect(sql_text)
dw_cybrfy.Retrieve()
tj_row = dw_cybrfy.RowCount()
dw_brfy.ReSet()
fy_row = dw_brfy.InsertRow(0)
dw_brfy.SetRow(fy_row)
dw_brfy.SetItem(fy_row,'zyh',zyh_fy)
dw_brfy.SetItem(fy_row,'name',&
dw_cybr.GetItemString(br_row,'xm'))
ryrq = date(dw_cybr.GetItemDatetime(br_row,'ryrq'))
dw_brfy.SetItem(fy_row,'ryrq',ryrq)
cyrq = date(dw_cybr.GetItemDatetime(br_row,'cyrq'))
dw_brfy.SetItem(fy_row,'cyrq',cyrq)
dw_brfy.SetItem(fy_row,'yjk',&
dw_cybr.GetItemNumber(br_row,'jkhj'))
dw_brfy.SetItem(fy_row,'ye',&
dw_cybr.GetItemNumber(br_row,'syyf'))
If IsNull(cyrq) Then
dw_brfy.SetItem(fy_row,'zyts',&
(DaysAfter(ryrq,Today())))
Else
dw_brfy.SetItem(fy_row,'zyts',&
(DaysAfter(ryrq,cyrq)))
End If
For i=1 To tj_row
sfxm = Trim(dw_cybrfy.GetItemString(i,'sfxm'))
je = dw_cybrfy.GetItemNumber(i,'je')
fun_brfy(dw_brfy,sfxm,je)
Next
cb_print.Enabled = True
cb_exit.SetFocus()
问题点数:40、回复次数:7Top
1 楼sywen(古道西风)回复于 2005-06-01 13:54:55 得分 20
你的是什麽數據庫,估計是客戶端與服務器端日期格式設置不一樣所緻!
我以前用oracle踫到過這個問題!Top
2 楼steve_shun(steve)回复于 2005-06-01 15:20:33 得分 0
用的是sql server2000,该如何解决,大侠指点!Top
3 楼qltouming(缘木渔人-临渊羡鱼,不若退而结网)回复于 2005-06-01 15:27:18 得分 9
代码没错的话应该就是机器日期格式设置的问题了,和数据库也不一定有关系,可能就是机器操作系统中日期格式的事,金额格式等有时也会因设置而导致显示不一致问题Top
4 楼steve_shun(steve)回复于 2005-06-01 15:44:09 得分 0
以前客户端用的是win95、win98,或者是winnt4,可惜当时的日期时间格式具体是什么样子的记不得了Top
5 楼princelily(百合)回复于 2005-06-01 16:15:56 得分 7
服务器端和开发环境中的时间字段不一致造成的。Top
6 楼wjtben(懒鱼冲树)回复于 2005-06-01 17:30:39 得分 4
format格式看看
Top
7 楼steve_shun(steve)回复于 2005-06-18 10:03:20 得分 0
问题解决了,结帖Top




