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
我再试试,感谢
我试过了,没用,完整的把语句都带进去了,但程序运行之后,grid里面还是空白的,没有显示数据出来
追答要看一下,grid的数据源是不是正确,grid控件有个数据集属性
追问数据源是对的,语句我在SQL server里面运行没有问题,但代入到delphi里面就一直运行不了
程序是能正常run的,只是grid双击打开之后,下一个grid里面都是空的
而我如果在当前窗体的grid的DblClick事件里面设置双击打开的窗体的grid的DataSource.dataset=当前窗体的数据集,那2个窗体的grid显示的表格又一模一样
我这个就是通过双击第一个窗体的grid的列才打开的窗体,原第一个窗体的grid可以通过查询按键来获得临时表,窗体2就只能设定,在被打开时就自动生成临时表,弄了几天了,一直没弄好
参考技术C 那是肯定的咯delphi平台,在一个主窗体上打开两个子窗体,也就是:打开一个子窗体之后,再打开第二个窗体第一个窗体不关闭
使用xx.Show;
来打开.
子窗口关闭不是关闭其实是隐藏。只有主窗体关闭才是真正的关闭程序
你直接Show就好了追问
我现在的情况是打开了一个子窗体,但是想打开第二个子窗体的时候,刚才打开的那个子窗体就不见了。我希望这两个子窗体互不影响,都显示出来
追答设置窗口置顶。不是不见了而是被覆盖了。在窗口Style里面选择
参考技术A 在主窗口下打开一百个窗子都可以,只不过是你打开第二窗子的时候,第一个窗子,跑到了主窗体的下面.如果你认为这样不好的话,你可以把主窗体设置为父窗体,其它窗体都设置成子窗体.这样的话,所有打开的子窗体,都会在主窗体里面.(移不到主窗体的外面去),这你可能又不太满意了.其实,一个软件同时开多个窗体,对于用户来说,意义并不大,因为某个时刻,可以进行操作的窗体永远只有一个,一般来来说需要同时关注两个窗体的事情,就是一边输入数据,一边关注数据的保存情况,或者观察主从表数据数据变化,对于这类情况,一般主张对窗口进行分区处理,比如一个分区块是输入数据区,另一个是数据浏览区,或者上面是主表数据,下面是从表数据.没有必要用两个窗体 参考技术B 窗体属性里有相关设置。 不要选择选择项有single**,Dialog**等,我用的都是单界面所以,你试下.以上是关于delphi中,怎样设置新窗体打开时,就运行指定的SQL语句的主要内容,如果未能解决你的问题,请参考以下文章