zoukankan      html  css  js  c++  java
  • PB对数据窗口的查询语句进行动态修改

    通过setsqlselect、dw_1.modify(DataWindow.Table.Select="")和dw_1.object.DataWindow.Table.Select=""均可对数据窗口的查询语句进行动态修改,但有一些区别

    1、setsqlselect用法:

    ls_select=getsqlselect    //通过getsqlselect取得当前数据窗口的查询语句select……from……,但得不到where子句

    ls_where="  "          //给变量ls_where赋值,将所要添加的限定条件赋给此变量,但应考虑到select子句与where子句之前的空格

    dw_1.setsqlselect(ls_select+ls_where)     //通过setsqlselect将生成的查询语句更新至数据窗口

    2、dw_1.modify用法:

    Old_Select=dw_1.Describe("DataWindow.Table.SQLSelect ")

    ls_select=getsqlselect

    ls_where="  "

    dw_1.modify("DataWindow.Table.Select='" + ls_select+ls_where + " ' ")

    dw_1.settransobject(SQLCA)

    dw_1.retrieve()

    dw_1.object.DataWindow.Table.Select=Old_Select

    更新完后可用以下语句取出select语句查看并调试

    messagebox("",string(dw_1.Describe("DataWindow.Table.SQLSelect ")))

    看网上有贴子说此语句只能更改DW查询语句中的where子句,暂未证实,有机会试试

    3、dw_1.object.DataWindow.Table.Select=" " 用法:

    此种用法与dw_1.modify()基本相同,只是使用dw_1.modify()时,在()中需要使用双引号把其中的DataWindow.Table.Select以及其后的变量引起来,需要考虑引号的对应关系问题,而此种用法则相对简单一些

    Old_Select=dw_1.Describe("DataWindow.Table.SQLSelect ")

    ls_select=" select …… from ……"

    ls_where=" ……"

    ls_having=" …… "

    ls_groupby=" …… "

    dw_1.object.DataWindow.Table.Select=ls_select+ls_where+ls_having+ls_groupby

    dw_1.settransobject(SQLCA)

    dw_1.retrieve()

    dw_1.object.DataWindow.Table.Select=Old_Select

    感觉此语句最为强大,用起来也顺手,我喜欢

    注意:在动态修改sql语句时,select段可以修改,但应确保select后面跟随的字段个数以及类型应与建立数据窗口时选择的字段个数和类型相同,否则报错

    转自:http://blog.163.com/dj_djd/blog/static/83976802015118442100/

  • 相关阅读:
    第七章 防火墙和网络地址转换
    第六章 系统配置:DHCP和自动配置
    VLOOKUP函数的用法
    orcad 里误给元件添加了属性,如何删除
    文件夹无法删除提示找不到该项目怎么办
    网址
    OrCAD16.6中对比两份DSN文件的方法
    cadence allegro pcb模块设计复用
    Allegro Desgin Compare的用法与网表比较
    转:office 2016最新安装及激活教程(KMS)
  • 原文地址:https://www.cnblogs.com/Sherlock-J/p/12926024.html
Copyright © 2011-2022 走看看