向資料庫寫入資料:
庫名:kaoqin
欄位:ryid(人員編號)name(姓名)date(考勤日期)biaozhi(標志)sbsj(上班時間)xbsj(下班時間)
字符型:ryid(人員編號)name(姓名)
日期型(date):date(考勤日期
時間型(time):sbsj(上班時間)xbsj(下班時間)
long ll_id,ll_i
date ld_date
time lt_time1,lt_time2
string ls_name,ls_biaozhi
insert into "kaoqin"
("ryid",
"name",
"date",
"biaozhi",
"sbsj",
"xbsj")
values
(:ll_id,
:ls_name,
:ld_date,
:ls_biaozhi,
:lt_time1,
:lt_time2.text );
系統提示:error :Invalid operand type for Dot operator :time
uj5u.com熱心網友回復:
最后一個:lt_time2.text
是個非法的操作.
uj5u.com熱心網友回復:
那怎么解決呢?uj5u.com熱心網友回復:
我把最后一句改成: :lt_time2,去掉.text,可是使用了,但是在寫入資料時,發覺顯示的日期是1900年、時間是00:00:00,無法顯示正確的日期和時間。請問,怎么解決?謝謝了!uj5u.com熱心網友回復:
time 默認值是 00:00:00date 默認值是 1900-01-01
datetime 默認值是它們的組合.
您需要先對變數賦值.
比如
lt_time2 = time((em_2.text))//假定em_2是一個控制元件,您需要保證這個控制元件的值是一個time型別的字串.
uj5u.com熱心網友回復:
謝謝kenshu大俠,賦值后解決了,但是還有一個問題望大俠幫忙。我寫了一個判斷日期輸入格式的的腳本,但是無論輸入什么格式,系統都不會提示出錯。
腳本如下:
if sle_date.text<>"" and not isnull(sle_date) then
if isdate(sle_date.text) then
ld_date=date(sle_date.text)
else
messagebox("輸入資料錯誤","請使用“年-月-日”的日期格式")
sle_date.setfocus()
return
end if
end if
我如果輸入的是:2010/1/1,不會有出錯提示,瀏覽的時候自動生成2010-1-1
請問,怎么才能出現錯誤提示呢?
uj5u.com熱心網友回復:
日期格式為年-月-日,年/月/榷訓者年.月.日都可以的,用isdate函式是判斷不出來的1.你可以設定sle_date的format為####-##-##
2.你可以用pos函式找'-',如果不存在就提示 請使用“年-月-日”的日期格式"
uj5u.com熱心網友回復:
問題好像不是很清楚。
系統提示是怎么出來的,是不是sqlca的sqlerrtext
uj5u.com熱心網友回復:
輸入錯誤的日期就有錯誤提示了比如輸'2010-2-30'
uj5u.com熱心網友回復:
日期型別未正確轉換uj5u.com熱心網友回復:
可能是關鍵字影響uj5u.com熱心網友回復:
去掉最后的.textuj5u.com熱心網友回復:
最后一個.text是什么??你定義了一個變數,在后邊加上.text不報錯?還有,最后兩列恐怕是time型別吧?那你一定要讓插入的變數和表中定義的變數型別保持一致。
uj5u.com熱心網友回復:
建議使用掩碼控制元件控制時間輸入格式uj5u.com熱心網友回復:
如果非要代碼里判斷是不是yyyy-mm-dd格式,可以先得到資料以后轉換成string型別,然后用字串函式判斷是否是指定格式。不過還是建議用掩碼uj5u.com熱心網友回復:
最后一個:lt_time2.text,是字符型。而你的資料庫中是時間型肯定不行了,得先取出lt_time2.text的資料然后轉換為時間型,如lt_time2= time(lt_time2.text) ,insert into "kaoqin"
("ryid",
"name",
"date",
"biaozhi",
"sbsj",
"xbsj")
values
(:ll_id,
:ls_name,
:ld_date,
:ls_biaozhi,
:lt_time1,
:lt_time2 );
uj5u.com熱心網友回復:
先看一下取值對不對啊?uj5u.com熱心網友回復:
jt..jf轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/87768.html
標籤:腳本語言
