我想对数据库中的记录按照时间进行查找!代码如下! var searchtime:stirng; begin parambyname('searchtime'):=datetostr(datetimepicker1.date); with query1 do close; sql.clear; sql.add('select * from 表 where 日期=searchtime'); open; end; 编译时为什么总提示parambyname没有定义呢,问题出在哪里呢?感谢各位!
----------------------------------------------
-
肯定不能这样用的啊~~ 我不知道你为什么要用parambyname 直接写不久行了嘛 我给你个例子吧~~我自己的程序:) procedure TNMHT.FlatButton1Click(Sender: TObject); var strsql:string; i,j:integer; begin //***内贸合同信息入库*** strsql:='insert into NMHT '; strsql:=strsql+'values(:scontractno,:sdate,:area,:province,:calling,:man,:buyername,:buyeradd,'; strsql:=strsql+':buyertel,:buyerman,:goodadd,:goodman,:goodtel,:total,:jhq,:fkfs,:fktj,:check)'; with main.qryedit do begin close; sql.clear; sql.add(strsql); parambyname('scontractno').value:=uppercase(self.FlatEdit1.Text); parambyname('sdate').value:=datetostr(datetimepicker1.date); parambyname('area').value:=self.Flatcombobox1.text; parambyname('province').value:=Flatcombobox2.text; parambyname('calling').value:=Flatcombobox3.text; parambyname('man').value:=Flatcombobox4.text; parambyname('buyername').value:=FlatEdit2.text; parambyname('buyeradd').value:=FlatEdit8.text; parambyname('buyertel').value:=FlatEdit9.text; parambyname('buyerman').value:=FlatEdit10.text; parambyname('goodadd').value:=FlatEdit11.text; parambyname('goodman').value:=FlatEdit12.text; parambyname('goodtel').value:=FlatEdit13.text; parambyname('total').value:=strtofloat(FlatEdit7.text); parambyname('jhq').value:=FlatEdit3.text; parambyname('fkfs').value:=Flatcombobox5.text; parambyname('fktj').value:=FlatEdit4.text; if self.FlatCheckBox1.Checked then parambyname('check').value:=1 else parambyname('check').value:=0; try execsql; except; showmessage('库中已有该内贸合同号,不能重复插入!'); exit; end; end;
if (trim(stringgrid1.cells[1,stringgrid1.RowCount-1])=') then j:=stringgrid1.RowCount-2 else j:=stringgrid1.RowCount-1; for i:=1 to j do begin strsql:='insert into NMHTCP '; strsql:=strsql+'values(:HTH,:ID,:NAME,:COUNT,:PRICE)'; with main.qryedit do begin close; sql.clear; sql.add(strsql); parambyname('HTH').asstring:=uppercase(self.FlatEdit1.Text); parambyname('ID').asstring:=stringgrid1.cells[1,i]; parambyname('NAME').asstring:=stringgrid1.cells[2,i]; parambyname('COUNT').asstring:=stringgrid1.cells[3,i]; parambyname('PRICE').asstring:=stringgrid1.cells[4,i]; try execsql; except; showmessage('error'); exit; end; end; end; showmessage('该合同信息已成功入库!'); end;
with query1 do begin .close; .sql.clear; .sql.add('select * from 表 where 日期:searchtime ') .params[0].AsStrig:=datetimetostr(DataTimePicker1.date); .Prepare; .open; end; end;
首先感谢各位亲爱的朋友,我忘记了说明,我用的是ADO数据库,我查了一下有关于sql的资料,在ADO里查询时间要用如下格式# ~#,我试了一下,果然成功。怎么再使用datetimepicker1又提示参数等的错误呢?thanks! procedure TForm1.Button2Click(Sender: TObject); var //gh:tdatetime; begin // gh:=datetimepicker1.DateTime; with adoquery1 do begin close; sql.clear; //parameters.ParamByName('gh').Value:=datetostr(DateTimePicker1.DateTime); sql.Add('select * from 表1 where 日期=#2002-08-21#'); open; end; end;
----------------------------------------------
-