CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

求救,关于tquery和dbgrid

楼主liuyun1984(流云)2004-05-03 22:58:34 在 C++ Builder / 数据库及相关技术 提问

 
  我这里面有一个库,别名是ict,里面有2个表ictw和ics每个表里面有englishi和chinese两个字段,我要用一个edit输入一个英语单词然后在这两个表当中用tquery查询,返回得到包含这个单词的短语和句子的english和chinese字段,显示在一个dbgrid当中,怎么实现  
  有怎么实现讲查询结果编号将编号在dbgrid当中作为一列显示,然后用数字键选择使结果发到另外一个edit当种 问题点数:20、回复次数:9Top

1 楼liuyun1984(流云)回复于 2004-05-04 20:13:47 得分 0

大家帮帮我啊Top

2 楼guanshangming()回复于 2004-05-05 15:03:56 得分 2

第一个问题  
  以Access或SQL   Server为例  
  select   *   from    
  (select   word,english,chinese   from   ictw  
  union  
  select   word,enliash,chines   from   ics)  
  where   word   like   '%LOVE%'  
   
       
  第二问题还没有想好,等想好再给答复Top

3 楼guanshangming()回复于 2004-05-05 15:07:58 得分 5

你也可以先参考一下这里  
  http://expert.csdn.net/Expert/topic/2915/2915037.xml?temp=.9774439Top

4 楼liuyun1984(流云)回复于 2004-05-05 17:09:01 得分 0

问题以解决,谢谢个位    
  DataModule2->WordQuery->SQL->Add(queryString);  
                                  DataModule2->WordQuery->ExecSQL();  
                                  DataModule2->WordQuery->Active=true;  
                                  DataModule2->WordQuery->Edit();  
                                  DataModule2->WordQuery->First();  
                                  while(!(DataModule2->WordQuery->Eof))  
                                  {  
                                                  DataModule2->WordQuery->Edit();  
                                                  DataModule2->WordQuery->FieldByName("Id")->AsInteger=DataModule2->WordQuery->RecNo;  
                                                  DataModule2->WordQuery->Next();  
   
    WordQuery是一个Tquery的Name,DataModule2是放Tquery的数据模块的Name  
  已经将WordQuery的RwquestLive属性设置为true  
  Top

5 楼uestcwl(uestcwl)回复于 2004-05-05 17:44:43 得分 5

dingTop

6 楼liuyun1984(流云)回复于 2004-05-05 17:48:15 得分 0

现在的新的问题出来了,大家继续帮忙啊  
  就是如果DataModule2->WordQuery->SQL->Add(queryString);  
                                  DataModule2->WordQuery->ExecSQL();  
                                  DataModule2->WordQuery->Active=true;  
                                  DataModule2->WordQuery->Edit();  
                                  DataModule2->WordQuery->First();  
                                  while(!(DataModule2->WordQuery->Eof))  
                                  {  
                                                  DataModule2->WordQuery->Edit();  
                                                  DataModule2->WordQuery->FieldByName("Id")->AsInteger=DataModule2->WordQuery->RecNo;  
                                                  DataModule2->WordQuery->Next();  
  queryString="Select   *   From   icw   ";或者queryString="Select   *   From   ics”,都没有问题。  
  queryString="Select   *   From   icw   Union   Select   *   from   ics   ";时就出错显示:WordQuery不能修改只读的DataSet    
  已经将WordQuery的RwquestLive属性设置为true  
  请问个位怎么解决  
   
   
  Top

7 楼guanshangming()回复于 2004-05-05 20:48:57 得分 8

首先对你这一句不太明白  
  DataModule2->WordQuery->ExecSQL();                       //这里这句是什么用意  
  DataModule2->WordQuery->Active=true;  
   
  BDE+Paradox或dBase   IV对于联合查询甚至查询语句使用了Order   by,都会将数据集设置为只读。ADO+SQL   Server就没有此问题  
   
  可以考虑设置计算字段。  
  具体方法为  
  在设计时先设置好Query的SQL语句,然后双击Query,添加要显示的字段名,然后添加new   field... ,在New   Field窗口的字段属性里填入计算字段的字段名和类型,字段类型选Calculated。  
  假设添加计算字段名为ID,在  
  Query的OnCalcFields事件中书写  
  void   __fastcall   TForm1::Query1CalcFields(TDataSet   *DataSet)  
  {  
  Query1->FieldByName("ID")->AsInteger   =   Query1->RecNo;  
  }  
  最后,将Query的RequestLive属性设置为true  
  Top

8 楼liuyun1984(流云)回复于 2004-05-06 09:12:22 得分 0

DataModule2->WordQuery->ExecSQL();                        
  DataModule2->WordQuery->Active=true;//执行sql查询  
   
  你的方法解决了联合查询时dataset只读的问题,但是现在照你的方法做时dbgrid只显示id字段而没有english和chinese字段,但是在设计时先设置好Query的SQL语句却不可以,因为我这里时动态的sql查询。Top

9 楼liuyun1984(流云)回复于 2004-05-07 10:28:18 得分 0

非常感谢各位  
  特别感谢   guanshangming(聪明蛋)Top

相关问题

  • Tquery and DBgrid 问题
  • 急。在线求解,TQuery和DBGrid的问题
  • 菜鸟问题:请问如何使和TQuery连接的DBGrid定义的进入编辑状态?
  • 我用TQuery和DBGrid作了一个表格,但却不能对数据进行编辑?!
  • DBGrid和DataGrid
  • dbgrid
  • DBGRID
  • DBGrid
  • dbGrid
  • DBGrid

关键词

  • word
  • wordquery
  • datamodule2
  • dbgrid
  • 表
  • chinese
  • edit
  • 问题

得分解答快速导航

  • 帖主:liuyun1984
  • guanshangming
  • guanshangming
  • uestcwl
  • guanshangming

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo