发信人: fbilo()
整理人: hunter__fox(2002-03-16 22:15:50), 站内信件
|
vaildatetype方法:
用来确定包含在SQL语句的where从句中是否使用了正确的数据类型。
因为本示例是通过交互式建立一个SQL语句来建立查询的,因此必须正确的设置在
SQL语句的where从句中使用的值的数据格式。否则,可能因为要查询的字段和自
定义值的数据类型不匹配而出现错误。
在前述的settextboxformat方法中,我们只是设置了文本框的输入方式,从该文
本框返回的还是字符型值。(一般来说,系统默认文本框返回的值都是字符型)
因此,必须使用特定的方法把这些字符型值转换成相应的数据类型。
***********************************************************
LPARAMETERS lField, lcValue
LOCAL lcType
lcType = TYPE(lField)
DO CASE
CASE lcType $ "CM"
lcValue = CHR(34) + lcValue + CHR(34)
CASE lcType $ "DT"
lcValue = "{" + lcValue + "}"
CASE lcType $ "NY"
IF EMPTY(lcValue)
lcValue = "0"
ENDIF
CASE lcType $ "L"
IF !INLIST(UPPER(lcValue), ".T.", ".F.")
lcValue = ".T."
ENDIF
ENDCASE
RETURN lcValue
***********************************************************
本方法接收两个参数lField字段, lcValue字段的值。通过判断字段iFiIeld的数
据类型,修改并返回lcValue字段的值。
--通过type()函数判断lField字段的数据类型,并赋值给变量lctype。
--如果lctype包含于"CM",也即是lField是字符型或备注型,则使用CHR(34)给l
cValue两端加上双引号。
--如果lctype包含于"DT", 也即是lField是日期型或日期时间型,则给lcValue
两端加上花括号。
--如果lctype包含于"NY", 也即是lField是数值型或货币型,则判断lcValue是
否为空,如是空值则给赋值为0。
--如果lctype包含于"L", 也即是lField是逻辑型,判断lcValue转换为大写后其
值是否不在".T.", ".F."列表中,如是,则给lcValue赋值为 ".T."。
--用RETURN lcValue语句将经过转换的lcValue返回给调用本方法的过程。
--通过type()函数判断lField字段的数据类型,并赋值给变量lctype。
--如果lctype包含于"CM",也即是lField是字符型或备注型,则使用CHR(34)给l cValue两端加上双引号。
--如果lctype包含于"DT", 也即是lField是日期型或日期时间型,则给lcValue 两端加上花括号。
--如果lctype包含于"NY", 也即是lField是数值型或货币型,则判断lcValue是 否为空,如是空值则给赋值为0。
--如果lctype包含于"L", 也即是lField是逻辑型,判断lcValue转换为大写后其 值是否不在".T.", ".F."列表中,如是,则给lcValue赋值为 ".T."。
--用RETURN lcValue语句将经过转换的lcValue返回给调用本方法的过程。
-- ※ 修改:.fbilo 于 Apr 7 18:26:24 修改本文.[FROM: 202.96.101.254] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.101.254]
|
|