请教有关ADO和left join的用法,请大家帮个忙!我在ADOQuery1里这样写select A.货品代号 , B.货品名称 , A.数量
from A left join B on (A.货品代号 =B.货品代号)当我在ADOQuery里执行 ADOQuery1->Delete();
时出错或两个表(A,B)里的该行记录都被删除!其实我只想删除A表中的记录!请问有什么解决方法。
我知道可以用一个其它的ADOQuery写一行SQL语句将A表的该行数据删除,但此时ADOQuery1里仍然存在该行数据,会将生误会。我以前用过BDE,里面是用UpdateSQL这个控件更新数据库,可以实现这个功能,而且还可以确定记录的哪些字段更新哪些字段不更新。
from A left join B on (A.货品代号 =B.货品代号)当我在ADOQuery里执行 ADOQuery1->Delete();
时出错或两个表(A,B)里的该行记录都被删除!其实我只想删除A表中的记录!请问有什么解决方法。
我知道可以用一个其它的ADOQuery写一行SQL语句将A表的该行数据删除,但此时ADOQuery1里仍然存在该行数据,会将生误会。我以前用过BDE,里面是用UpdateSQL这个控件更新数据库,可以实现这个功能,而且还可以确定记录的哪些字段更新哪些字段不更新。
解决方案 »
- delphi里的xLabel是什么控件
- delphi2007 读取得unicode文本显示出来时乱码?
- indy问题 用TidTCPServer向TidTCPClient 发信息
- 开发广告机,有兴趣的进来~~!
- dbnavigator的应用
- 程序员聊天交流,http://cngo.net/chat,刚弄成的,呵呵
- 窗口大小问题
- 不同的类之间要怎样才能访问呢?
- 一个利用Access 的report design做完报表后怎样用Delphi编程打印输出此报表的问题
- 请问用DotHLP制作CHM帮助文件时汉字老是出现乱码怎么解决?
- 快来帮我啊----TDBComboBox怎样填充下拉条??
- 闲来无事,帮斑竹一个忙 :)
因为我是在DBGrid里增加记录,当打了“货品代号”后从数据库里取得“品名”,同时显示在DBGrid里。请问ADO能实现这个吗?
>> Delete 后 Refresh 一下 ,adoquery 就更新了,就不会产生误会了当我用另一个ADOQuery写一条删除语句后,再在ADOQuery1->Refresh();
就产年错误“缺少更新或刷新的键列信息”我的A表与B表均有Key
配合DisableControls和EnableControls!
select A.货品代号 , B.货品名称 , A.数量
from A left outer join B on (A.货品代号 =B.货品代号)试一下。应该可以显示a表的所有行。
如果想显示A表中具有‘A.货品代号 =B.货品代号’关系的记录就要:
select A.货品代号 , B.货品名称 , A.数量
from A inner join B on (A.货品代号 =B.货品代号)想对它操作(如删除)就要另外用Query来实现,因为你不是主从表关系,用它来更新数据库,会对两个表同时更新的,就象你上面说的一样。
因为不同的数据在这方面具体的标准不一样,很难统一判定
例如你在删除时可以:with ADOQuery.Create(Self) do
try
Connection:=YourDM.Connection;
SQL.ADD('delete from A表 where 货品代号='+QuotedStr('某个货品代号'));
ExecSQL;
//然后你的前端显示数据更新,最好是关闭然后打开,否则可能会出现“缺少更新或刷新的键列信息”问题(例如没有主索引等)
finally
Close;
Free;
end;
ADO有什么比BDE优胜的地方?
由于我的项目快要上了,如果用ADO则我的查找与添加、修改必须在不同的界面。要不然在打入编号时又不会出现物品的名称。
请各位大侠多多指教!
很多谢你的回答!在BDE中可以用UpdateSQL 选择要更新或要增加的项目,只要不更新 left join 其它表的项目就行了。对于SQL工业标准我真的不太清楚,我只会用一部份。
那么在软件设计中是不是大家都将查询/输入/修改放在不同的界面上?
我想做到的效果是:在用户输入时DBGrid里列分为可输入列(通常为物品的ID)和不可输入列(物品的名称),当输入ID后名称就会查找出来并显示于DBGrid的某列中.
我看过金碟就是这种用效果,但具体怎样做就不清楚。我现在查询与输入是同一个界面,查询时用left join,但如果在这时对数据库进行insert操作,就会提示我的物品资料里不能增加ID 为 null的字段。(因为我在物品资料里设定了Key)up 一下!