我想把 ADOQuery1 里select的数据放到另一个表中,可是~~~~ (36分)

  • 主题发起人 主题发起人 jomee
  • 开始时间 开始时间
J

jomee

Unregistered / Unconfirmed
GUEST, unregistred user!
access:
SELECT [零售业务].[商品编号], Sum([零售业务].[数量]) AS 数量之Sum INTO 零售业务记录
FROM 零售业务
GROUP BY [零售业务].[商品编号]

delphi:
procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
sql.Add('SELECT [零售业务].[商品编号], Sum([零售业务].[数量]) AS 数量之Sum INTO 零售业务记录');
SQL.Add('FROM 零售业务');
SQL.Add('GROUP BY [零售业务].[商品编号]');
ExecSQL;
end;

end;
 
不正常是甚麼?
 
好像不能用sum之类的语句
 
Delphi里不能用 select ... into
也用不着
 
楼上的乱谈,delphi里怎么不能用select ...into了?
人家要用,怎么用不着?
 
wbtvc,
那怎么办?我想把ADOQuery1的数据转到另一个表。
 
可以想你这样写..提示的什么错误
 
错误:'零售业务记录''already erros
 
应该没错呀
 
select ... into.. 后的表是否是新表,若该表已存在,则会error.
 
使用我的控件。如果需要发邮件:c_delphi@cmmail.com

TDataTransfer提供了两种数据传递的解决方案,具体如下叙述:
1、数据集间的数据传递。
2、数据集与数据文件间的数据传递。
在使用TDataTransfer的时候需要设置一些必要的属性。首先设置
TDataTransfer.TransferMode属性,当进行数据集间的数据传递
时需要设置TDataTransfer.DBSet.srcDataSet和desDataSet属性,
如果进行数据集与数据文件间的数据传递时还需要设置
TDataTransfer.TextSet.SplitSymbol、TextFile、KeyIndex、
IsUseFileKey、FileKey属性,最后执行TDataTransfer.Execute
方法即可完成操作。
DBSet对象是数据集对象,它内部包含源数据集(srcDataSet)
和目标数据集(desDataSet)。DBSet可以兼容使用BDE,ADO,ODBC
等方式连接的任意数据集,如BDEDataset,ADODataset等。
TextSet对象是文本集对象,它目前支持具有分割符的纯文本文
件的输入输出。将来的支持可扩展到XML,EXCEL等文件类型。
 
版主有没有弄错阿!你是想把结果放到变量中还是放到表中阿
select into 好像是放到变量里,好象是
如果往表里插纪录应该是用insert into 零售业务记录 select ?
 
select ... into 是创建一个表,然后将记录添加进去的。
而不是向已有表中添加记录的。

因为你已经有了这个表,而ACCESS不允许两个表同名,
所以就触发了“表已经存在”的错误了。
 
你的零售业务记录 存在吗..应该没错呀...
 
呵呵,就是'零售业务记录'已经存在了呀,你要先删除该表,才能select into
 
如果一定要添加的话,可以用

Insert 零售业务记录 select [零售业务].[商品编号], Sum([零售业务].[数量]) AS 数量之Sum from 零售业务
 
就按上边的写吧..绝对不会再出错..
 
sql.Add('SELECT [零售业务].[商品编号], Sum([零售业务].[数量]) AS 数量之Sum INTO 零售业务记录');
SQL.Add('FROM 零售业务');
SQL.Add('GROUP BY [零售业务].[商品编号]');
如果表
零售业务记录
不存在,用上面的语句改动以下应该可以,注意加空格,
sql.Add('SELECT [零售业务].[商品编号], Sum([零售业务].[数量]) AS 数量之Sum INTO 零售业务记录');
SQL.Add(' FROM 零售业务');
SQL.Add(' GROUP BY [零售业务].[商品编号]');
如果表
零售业务记录
存在,用下面的语句
sql.Add('INSERT INTO 零售业务记录 SELECT [零售业务].[商品编号], Sum([零售业务].[数量]) AS 数量之Sum ');
SQL.Add(' FROM 零售业务');
SQL.Add(' GROUP BY [零售业务].[商品编号]');


 
来晚了!不过这各问题很简单,认真看书就行了!
 
为什么不用insert
insert into ... select ...
 
后退
顶部