delphi中,怎样设置新窗体打开时,就运行指定的SQL语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中,怎样设置新窗体打开时,就运行指定的SQL语句相关的知识,希望对你有一定的参考价值。

delphi2010版,窗体内有表格控件TNaDBGroupGridEh跟关联控件TClientDataSet,TDataSource,TDSProviderConnection请问怎样设置,才能使窗体在被打开时,自动运行指定的SQL语句,让语句查询结果在grid上显示出来

    你需要在窗体的Create中将数据库控件连接到数据库。

    确定你的SQL语句是正确的

    确定的你的组件连接是正确的(如果你只用了上面的组件好像少了数据库连接的组件和执行SQL语句的query组件)

    在窗体的show中,执行SQL语句,并且将query:=true;ClientDataSet:=true 即可

追问

你好,query这个是设置在窗体外的共用窗体里面,引用就可以,sql语句写入后,2条‘true’不管是写在语句前还是语句后,系统都有报错
E2035 Not enough actual parameters
E2010 Incompatible types: 'TClientDataSet' and 'Boolean'

追答

你的ClientDataSet相关组件是自己动态创建的,还是直接设计时创建的?

你可以先不用ClientDataSet:=true,只用query:=ture ,看是否报错,如果还是报第一条错误,可能是你的语句有问题?你可以把代码发上来看一看。。

追问

设计时就已经建好了,只用query:=true,还是一样报错‘参数不够’

语句我直接在问题改了,字数太多,只能用图片

追答

把你的DSP 替换成 

图里这个控件,设置好dataset属性,然后设置Clientdataset属性

追问

你好,我这个是远程数据库,替换了DSP的话,远程数据库连接要怎么设置?
换上了datasetprovider之后,原来的远程连接就不能用了

追答

远程数据库可以用 ADOConnection1 连接 ,我一直都用的这个 SQL mysql ACCESS 都可以,不知道你用的什么数据库。给你看一下连接数据库有哪些组件,一般来说按照下面的拽组件配置就行了

追问

我用的是sql server
我再试试,感谢

参考技术A 直接在窗体的oncreate事件里面写,就是打开窗体直接运行sql语句了追问

我试过了,没用,完整的把语句都带进去了,但程序运行之后,grid里面还是空白的,没有显示数据出来

追答

要看一下,grid的数据源是不是正确,grid控件有个数据集属性

追问

数据源是对的,语句我在SQL server里面运行没有问题,但代入到delphi里面就一直运行不了
程序是能正常run的,只是grid双击打开之后,下一个grid里面都是空的
而我如果在当前窗体的grid的DblClick事件里面设置双击打开的窗体的grid的DataSource.dataset=当前窗体的数据集,那2个窗体的grid显示的表格又一模一样

参考技术B 这个用语是不是指定的,那得看你的窗体是不是没有同时打开别的窗体追问

我这个就是通过双击第一个窗体的grid的列才打开的窗体,原第一个窗体的grid可以通过查询按键来获得临时表,窗体2就只能设定,在被打开时就自动生成临时表,弄了几天了,一直没弄好

参考技术C 那是肯定的咯

delphi平台,在一个主窗体上打开两个子窗体,也就是:打开一个子窗体之后,再打开第二个窗体第一个窗体不关闭

使用
xx.Show;
来打开.
子窗口关闭不是关闭其实是隐藏。只有主窗体关闭才是真正的关闭程序
你直接Show就好了追问

我现在的情况是打开了一个子窗体,但是想打开第二个子窗体的时候,刚才打开的那个子窗体就不见了。我希望这两个子窗体互不影响,都显示出来

追答

设置窗口置顶。不是不见了而是被覆盖了。在窗口Style里面选择

参考技术A 在主窗口下打开一百个窗子都可以,只不过是你打开第二窗子的时候,第一个窗子,跑到了主窗体的下面.如果你认为这样不好的话,你可以把主窗体设置为父窗体,其它窗体都设置成子窗体.这样的话,所有打开的子窗体,都会在主窗体里面.(移不到主窗体的外面去),这你可能又不太满意了.其实,一个软件同时开多个窗体,对于用户来说,意义并不大,因为某个时刻,可以进行操作的窗体永远只有一个,一般来来说需要同时关注两个窗体的事情,就是一边输入数据,一边关注数据的保存情况,或者观察主从表数据数据变化,对于这类情况,一般主张对窗口进行分区处理,比如一个分区块是输入数据区,另一个是数据浏览区,或者上面是主表数据,下面是从表数据.没有必要用两个窗体 参考技术B 窗体属性里有相关设置。 不要选择选择项有single**,Dialog**等,我用的都是单界面所以,你试下.

以上是关于delphi中,怎样设置新窗体打开时,就运行指定的SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 6 保存窗体设置

ACCESS如何在打开窗体时,输入密码?

Delphi 窗体中怎样嵌入网页

delphi窗体的问题

delphi平台,在一个主窗体上打开两个子窗体,也就是:打开一个子窗体之后,再打开第二个窗体第一个窗体不关闭

delphi 窗体移动事件