发信人: 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]
|
|