我做一个查询,但需要根据所选择的字段的类型进行查询条件符的设置,以前在VB里用的是fieldtype=11之类的做法,但现在Query对象里没有这个属性,该怎么做?代码如下:
searchsql:='select * from SC_LJKC';
if QRYsearchtxt.Text<>'' then
begin
case CBoxQryRelation.ItemIndex of
-1,0:
begin
//我要在这个位置判断一下adodm.adoQRYsearchLJ.fields[CBoxQryField.Text]的类型,该如何写?
searchsql:=searchsql+' where '+CBoxQryField.Text+'='+#39+QRYsearchtxt.Text+#39;
end;
1:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'>'+#39+QRYsearchtxt.Text+#39;
end;
2:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'<'+#39+QRYsearchtxt.Text+#39;
end;
3:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'>='+#39+QRYsearchtxt.Text+#39;
end;
4:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'<='+#39+QRYsearchtxt.Text+#39;
end;
5:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'<>'+#39+QRYsearchtxt.Text+#39;
end;
6:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'like '+#39+'%'+QRYsearchtxt.Text+'%'+#39;
end;
end;
end;
searchsql:='select * from SC_LJKC';
if QRYsearchtxt.Text<>'' then
begin
case CBoxQryRelation.ItemIndex of
-1,0:
begin
//我要在这个位置判断一下adodm.adoQRYsearchLJ.fields[CBoxQryField.Text]的类型,该如何写?
searchsql:=searchsql+' where '+CBoxQryField.Text+'='+#39+QRYsearchtxt.Text+#39;
end;
1:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'>'+#39+QRYsearchtxt.Text+#39;
end;
2:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'<'+#39+QRYsearchtxt.Text+#39;
end;
3:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'>='+#39+QRYsearchtxt.Text+#39;
end;
4:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'<='+#39+QRYsearchtxt.Text+#39;
end;
5:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'<>'+#39+QRYsearchtxt.Text+#39;
end;
6:
begin
searchsql:=searchsql+' where '+CBoxQryField.Text+'like '+#39+'%'+QRYsearchtxt.Text+'%'+#39;
end;
end;
end;
…………TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,
ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,
ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob,
ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);
searchsql:=searchsql+' where '+CBoxQryField.Text+'='+QRYsearchtxt.Text;
这样写对吗?
但它告诉我ftsmallint未声明,我应该在哪里声明?DB单元里不是有它的声明吗?我怎么才能直接用?
searchsql:=searchsql+' where '+CBoxQryField.Text+'='+QRYsearchtxt.Text;
这样写对吗?
=================================================================================
对!但它告诉我ftsmallint未声明,我应该在哪里声明?DB单元里不是有它的声明吗?我怎么才能直接用?
=================================================================================
uses
DB;