如何实现万能查找? 我想实现这样一个功能:输入一个字段名字,输入一个要查询的值,然后让数据库返回字段值与这个查询值相同的所有记录.其中字段的类型可能为大部分常用字段,比如文本的,整形的,浮点的,日期时间等等(不包括二进制等).有没有比较简洁的解决办法?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 意识是,应用软件的人,他怎么知道表中的字段名称呢?-------------------------------晕,开发软件的人总知道吧?你根据字段名再去查字段的类型,然后再做成SQL语句查询数据库 这样的话就不是一个通用的查询了,程序里会有根据字段类型而存在的许多的case语句了.我也不知道有没有这种查询方式,所以问一下大家. dbgrid1.Fields[i].DisplayText 可实现以上功能 列出 DBGrid中Column的Name && DisplayText ,同时列出对应的数据库表字段名 Search的时候对不同的字段类型做判断处理 这个可以做成通用的模块 用字段的DataType决定SQL应该是怎么样的。dbgrid1.Fields[i].DataTypeTFieldType = (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);strSql := 'select * from table where 1>0';case dbgrid1.Fields[i].DataType of ftString: strSql := strSql+' and '+dbgrid1.Fields[i].fieldname+' like '''+value+'%'''; ftDate : strSql := strSql+' and 'dbgrid1.Fields[i].fieldname+'>='''+fromDate+''''; ...end; 如何把图片存到数据库里? Delphi中怎样用 CreateProcess函数 来关闭一个用它打开的exe文件 帮忙!!! 怎样取得控件dxTreeList的内容 菜鸟求救! Delphi中TMethod的用法 清问:ExpressQuantumGrid 4中 TcxlookupComboBox的值,怎么添加?有类似的控件嘛? 各位,请看 请教大家:开发好的程序打包后如何拆包成打包前的文件? 如何发布C/S这样的程序? 今儿Happy,解决一个超难问题!偶得,与大家分享!遍历枚举类型,返回其所有的值的名。支持就回贴哦 删除数组中的一个值
-------------------------------
晕,开发软件的人总知道吧?你根据字段名再去查字段的类型,然后再做成SQL语句查询数据库
Search的时候对不同的字段类型做判断处理
这个可以做成通用的模块
dbgrid1.Fields[i].DataTypeTFieldType = (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);strSql := 'select * from table where 1>0';
case dbgrid1.Fields[i].DataType of
ftString: strSql := strSql+' and '+dbgrid1.Fields[i].fieldname+' like '''+value+'%''';
ftDate : strSql := strSql+' and 'dbgrid1.Fields[i].fieldname+'>='''+fromDate+'''';
...
end;