精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖数据处理〗>>动态建立SQL查询——VFP5示例详解(四)

主题:动态建立SQL查询——VFP5示例详解(四)
发信人: fbilo()
整理人: hunter__fox(2002-03-16 22:15:50), 站内信件
3.建立并执行SQL语句的查询
在通过上述方法检验并转换了值的数据类型后,建立SQL语句的准备工作完成了。
具体建立SQL语句的方法是表单的自定义方法bldsql,通过在组合框、文本框、条
件选项按钮的interactivechange事件使用该方法来动态建立在文本框edtsql中的
SQL语句。然后,使用按钮cmdExecute的click事件中的自定义过程来使用生成的
SQL语句并浏览其结果。
Bldsql方法:
1.变量声明
***********************************************************
LOCAL lcOperand,lcWHERE, lcField1, lcRelation1, lcValue1, ;
lcField2, lcRelation2, lcValue2, lcAlias, lcSQL, lcType
***********************************************************

2.确定已正确输入条件的值
***********************************************************
IF  EMPTY(THISFORM.cboField1.Value)
 THISFORM.cmdExecute.Enabled = .F.
 RETURN
ELSE
IF  THISFORM.opgOperand1.Value > 0 AND ;
EMPTY(THISFORM.cboField2.Value)
THISFORM.cmdExecute.Enabled = .F.
RETURN
ENDIF
ENDIF
***********************************************************
--首先判断组合框cboField1是否为空,如是,则未正确输入条件,禁止使用Run
Sql命令按钮cmdExecute并返回。
--在组合框cboField1不为空的情况下,判断添加and/or选项按钮组opgOperand1
的值是否大于0(即已选定了添加and/or)并且组合框cboField2是否为空,如果
两者成立,则禁止使用RunSql命令按钮cmdExecute并返回。

3.给变量赋值
***********************************************************
lcWHERE = ""
lcAlias = ALIAS()

** Retrieve the values of the controls into variables
lcField1 = THISFORM.cboField1.Value
lcRelation1 = THISFORM.cboRelation1.Value
lcValue1 = ALLTRIM(THISFORM.txtValue1.Value)

DO CASE
CASE THISFORM.opgOperand1.Value = 0
lcOperand = ""
CASE THISFORM.opgOperand1.Value = 1
lcOperand = "AND"
CASE THISFORM.opgOperand1.Value = 2
lcOperand = "OR"
ENDCASE

lcField2 = THISFORM.cboField2.Value
lcRelation2 = THISFORM.cboRelation2.Value
lcValue2 = ALLTRIM(THISFORM.txtValue2.Value)
***********************************************************

4.使用表单的ValidateType方法将要查询的值转换为正确的数据格式后存入变量

***********************************************************
** Need to put the proper delimiters around comparison values of certa
in **types
lcValue1 = THISFORM.ValidateType(THIS.cboField1.Value,lcValue1)
***********************************************************

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.101.254]

[关闭][返回]