一个Tdateedit控件关联数据集中的一个日期时间类型的字段。
发现如果写这样的代码:
DsbSLA.DataSet.Close;
Tsqldataset(DsbSLA.DataSet).SQL.Clear;
Tsqldataset(DsbSLA.DataSet).SQL.Text:='select * from FWJBXYB where FWJB='''+combobox1.Text+''' order by SLAJSSJ desc';
DsbSLA.DataSet.Open;
DsbSLA.DataSet.Edit;
这个控件表现正常,带有下拉按钮,我可以下拉选择时间,但是如果我把sql语句那句改为:
Tsqldataset(DsbSLA.DataSet).SQL.Text:='select * from (select * from FWJBXYB where FWJB='''+combobox1.Text+''' order by SLAJSSJ desc) where rownum=1';
这样的话,这个Tdataedit的控件的表现就有点不正常了,就没有下拉按钮了。我要取查询出来的记录的第一条的,怎样才能让那个Tdataedit控件的下拉按钮出来呢?
不明白你说的意思。
底层数据库是oracle数据库。下面这句话是可以在oracle数据库中执行的。
'select * from (select * from FWJBXYB where FWJB='''+combobox1.Text+''' order by SLAJSSJ desc) where rownum=1';
其中rownum这个东西是oracle特有的。
把sql语句更改为:
Tsqldataset(DsbSLA.DataSet).SQL.Text:='select a.* from FWJBXYB a,FWJBXYB b where a.bh=b.bh and b.FWJB='''+combobox1.Text+''' and a.SLAJSSJ=(select max(SLAJSSJ) from FWJBXYB b)';
这样我说的问题就解决了,结贴吧。