Код:
dbgrid1.DataSource:=datasource1;
adoquery1.Active:=false;
adoquery1.SQL.Clear;
p:='SELECT * FROM '+Adotable1.TableName+#13#10+' WHERE ';
for i:=Low(ACons) to High(ACons) do
begin
if ACons[i].AEdit.Text<>'' then
begin
if (i<>Low(ACons)) and (p<>'SELECT * FROM '+Adotable1.TableName+#13#10+' WHERE ') Then p:=p+' AND ';
if adotable1.FieldByName(ACons[i].ALabel.Caption).DataType=ftstring then p:=p+ACons[i].ALabel.Caption+' = '''+ACons[i].AEdit.Text+'''';
if adotable1.FieldByName(ACons[i].ALabel.Caption).DataType=ftSmallint then p:=p+ACons[i].ALabel.Caption+' = "'+ACons[i].AEdit.Text+'"'+'';
if adotable1.FieldByName(ACons[i].ALabel.Caption).DataType=ftInteger then p:=p+ACons[i].ALabel.Caption+' = ''"'+ACons[i].AEdit.Text+'"'+'';
if adotable1.FieldByName(ACons[i].ALabel.Caption).DataType=ftWord then p:=p+ACons[i].ALabel.Caption+' = '''+ACons[i].AEdit.Text+'''';
if i=High(Acons) then p:=p+';';
showmessage(tfieldtype adotable1.FieldByName(ACons[i].ALabel.Caption).DataType);
end;
end;
if p='SELECT * FROM '+Adotable1.TableName+#13#10+' WHERE ' then dbgrid1.DataSource:=datasource1 else
begin
adoquery1.SQL.Add(p);
adoquery1.Active:=true;
dbgrid1.datasource:=datasource2;
end;
lmikle: Где теги, мать вашу!!!
Вот такая вот штука получается. Но оно вообще не проверяет тип поля,даже если оно текстовое, оно этого не замечает,и запрос оканчивается словом WHERE. Без проверки на тип поля поиск работает,но только для текстовіх полей. Помогите пожалуйста,в последний раз

Что тут не так?