关于查询的问题,很着急,求助

babycathq2000 2005-03-15 04:08:12
在ADO的表中,我要查询并过滤,用MASKEDIT可以实现数字及日期的查询过滤,但是查询过滤字母或汉字该怎么办???
...全文
170 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjp6688 2005-03-18
  • 打赏
  • 举报
回复
ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from student_Info where student_ID like '%"+Edit1->Text+"%'");
ADOQuery1->Active=true;
ADOQuery1->Open();
xjp6688 2005-03-18
  • 打赏
  • 举报
回复
ADOQUERY没什么问题,不过ADOTABLE就与问题
xjp6688 2005-03-18
  • 打赏
  • 举报
回复
来晚了
babycathq2000 2005-03-17
  • 打赏
  • 举报
回复
结帖。
babycathq2000 2005-03-17
  • 打赏
  • 举报
回复
搞定中,谢谢。
babycathq2000 2005-03-17
  • 打赏
  • 举报
回复
十分感谢,没问题。我试过,用ADOQuery的话,ADOQuery->Filter="name='"+Edit1->Text+"'";这样写也没问题。那么用ADOQuery,还有其它的办法可以实现过滤吗???
rcrain 2005-03-16
  • 打赏
  • 举报
回复
ADOTable1->Filter="Name=Edit1->Text";//是这样写条件。
rcrain 2005-03-16
  • 打赏
  • 举报
回复
汉字字段的应该设为是字符型的吧。那个edit->text也是字符型的。
ADOTable1->Filter="Name="+Edit1->Text;就应该表示ADOTable1->filter="Name='三星'";
如果不用edit,直接写filter条件,比如后面我写的这种形式,还报错吗。
babycathq2000 2005-03-16
  • 打赏
  • 举报
回复
时间和数字没问题,就是字母和汉字有问题,您在那个贴子上写的,先判断数据类型,能举例说明吗?
比如需查询bhsr-001,汉字的就查询三星。
rcrain 2005-03-16
  • 打赏
  • 举报
回复
或者用ADOQuery也可以。
DateTime datetime1;
datetime1=DateTime(Edit1->text);
ADOQuery1->SQL->clear();
ADOQuery1->SQL->Add("select * from table1 ");
ADOQuery1->SQL->Add(" where 字段名time1= :datetime1");
........
rcrain 2005-03-16
  • 打赏
  • 举报
回复
应该是你在用Filter时,字段类型和你的输入类型不一致造成的。
比如,你过虑的是datetime型字段 time1字段。在edit中输入“2005-3-16 09:30:30”,代码:
ADOTable1->Filtered=false;
ADOTable1->Filter="time1='"+DateTime(edit1->text)+"'";
ADOTable1->Filtered=true;
这样就可以了。
babycathq2000 2005-03-16
  • 打赏
  • 举报
回复
我就是用的Filter,可是在EDIT输入的查询内容是数字就没问题,一旦需要查询字母或者汉字就会报错,说是错误类型,不能接受,Filtered是false的。这该怎么办呢???
rcrain 2005-03-16
  • 打赏
  • 举报
回复
ADOTable1->Filtered=false;
ADOTable1->Filter="name='"+Edit1->Text+"'";
ADOTable1->Filtered=true;
这个代码完全没有问题,可在edit中输入汉字,如果你的还有问题,就是你的设置或代码有问题。我已经试过,绝对没问题。
rcrain 2005-03-16
  • 打赏
  • 举报
回复
再出现问题就用ADOQuery吧,这个应该不会有问题。
rcrain 2005-03-16
  • 打赏
  • 举报
回复
如果改作 ADOTable1->Filter=Edit1->Text; //在edit1中输入过滤的条件,应该可以。比如在edit1中输入 Name='王小'
babycathq2000 2005-03-16
  • 打赏
  • 举报
回复
大家帮帮忙!!!
babycathq2000 2005-03-16
  • 打赏
  • 举报
回复
ADOTable1->Filter="Name=Edit1->Text";//这样写能行吗?“Edit1->Text”不就成了查询内容了?
ADOTable1->Filter="Name="+Edit1->Text;//我也是这样用的,可是字母或者汉字出错,如果进行判断,是不是应该
String x;
x = Edit1->Text;
if(ASCII(X)>73 && ASCII(X)<92)
{
.....
}
BCB中有ASCII(X)>73 && ASCII(X)<92这样的判断吗???
rcrain 2005-03-15
  • 打赏
  • 举报
回复
用Filter做筛选.
babycathq2000 2005-03-15
  • 打赏
  • 举报
回复
或者,实现过滤,还有没有其他的方法??
babycathq2000 2005-03-15
  • 打赏
  • 举报
回复
比如说,表内有日期这一栏,我可以利用MASKEDIT来查询日期,过滤之后,表内就只剩下具体日期这一天的相关内容了。同时表内还有例如商标这一项,比如SAMSUNG和PHLIP,我想通过MASKEDIT查询过滤之后,只剩下SAMSUNG相关的内容。
加载更多回复(1)

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧