delphi 数据库的多条件或但条件查询

你好我是刚才那位提问者就delphi数据库的多条件或但条件查询这个问题我还想请教下您下列是我的运行代码代码提示说where附近有错误发震时刻我是用的Tdatatimepi... 你好 我是刚才那位提问者 就 delphi 数据库的多条件或但条件查询这个问题 我还想请教下您
下列是我的运行代码 代码提示说where附近有错误 发震时刻 我是用的Tdatatimepicker一共有2个
开始没有改变 tempstr := 'select * from table_name where 1=1 ';这一句的时候 查询没有任何改变
之后我把全部代码改成了如下 请问我的错误在哪里
procedure TForm4.btn13Click(Sender: TObject);
var
qwe:string;
begin
qwe:='select * from DZB ';
with dmc.adqry3 do
begin
Close;
SQL.Clear;
sql.Add(qwe);
if DateToStr(dtp1.Date)<>'' then
begin
SQL.Add('where 发震时刻 >='+QuotedStr(DateToStr(dtp1.Date))) ;
end;
if DateToStr(dtp2.Date)<>'' then
begin
SQL.Add('and where 发震时刻 <='+QuotedStr(DateToStr(dtp2.Date)))
end;
if edt1.Text <>'' then
begin
SQL.Add('and where 纬度 >='+QuotedStr(edt1.Text))
end;
if edt2.Text<>'' then
begin
SQL.Add('and where 纬度 <='+QuotedStr(edt2.Text))
end;
if edt3.Text<>'' then
begin
SQL.Add('and where 经度 >='+QuotedStr(edt3.Text))
end;
if edt4.Text<>'' then
begin
SQL.Add('and where 经度 <'+QuotedStr(edt4.Text))
end;
if edt5.Text<>'' then
begin
SQL.Add('and where 深度 >='+QuotedStr(edt5.Text))
end;
if edt6.Text<>'' then
begin
SQL.Add('and where 深度 <='+QuotedStr(edt1.Text))
end;
if edt7.Text<>'' then
begin
SQL.Add('and where 震级 >='+QuotedStr(edt7.Text))
end;
if edt8.Text<>'' then
begin
SQL.Add('and where 震级 <='+QuotedStr(edt8.Text))
end;
Open;
end;
end;
展开
 我来答
youyobear
2013-12-18
知道答主
回答量:12
采纳率:0%
帮助的人:6.6万
展开全部
没有那么多WHERE的,一个SQL语句中用一个就行了,后面的查询条件用and连接就可以了,比如这样一句话:
select * from DZB where 发震时刻 >='+QuotedStr(DateToStr(dtp1.Date)) and 发震时刻 <='+QuotedStr(DateToStr(dtp2.Date))

那你上面的代码中多了很多where 所以会出错。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式