简单的数据库问题(50分)

  • 主题发起人 主题发起人 gadfly
  • 开始时间 开始时间
G

gadfly

Unregistered / Unconfirmed
GUEST, unregistred user!
要有选择性得将数据表中的数据放到报表中,我怎么建个临时性的表,将符合纪录的数据
一条条的取出来,再显示呢?我这样试了一下,结果不行啊

//Mytable中不存在cardnum=-1的数据
sQuery:='Select * from MyTable Where CardNum=-1';
with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add(sQuery);
open;
end;
//我这样时出错
ADOTable1.First;
while not ADOTable1.Eof do
begin
ADOQuery1.Insert;
ADOQuery1.FieldByName('CardNum').Value:=ADOTable1.FieldByName('CardNum').Value;
ADOQuery1.FieldByName('UserName').Value:=ADOTable1.FieldByName('UserName').Value; ADOQuery1.FieldByName('CardNum').Value:=ADOTable1.FieldByName('CardNum').Value;
ADOQuery1.FieldByName('DepartNum').Value:=ADOTable1.FieldByName('DepartNum').Value;
ADOQuery1.Post;
ADOTable1.Next;
end;

请搞手指教!
 
建议在ADOQuery控件中写上Insert Into MyTable(Field1,Field2,Field3)
Values(:PField1,:PField2,:PField3)试试……
 
能详细点吗?我不明白还是。。。
 
就是在ADOQuery中的SQL属性中写上Insert Into MyTable (Field1,Field2,Field3)
Values(:PField1,:PField2,:PField3)的SQL语句。不过可能在你这种文件型的数据库中不能
执行这种SQL语句,建议用ADOTable进行记录的插入。
 
建议用ADOTable进行记录的插入???
我现在没有一个表啊,怎么用ADOTable呢?我想创建个临时表,怎么也不行,我都要疯了
语句就是照书抄的,最简单的,都不行啊

sQuery:='Select * into #temp from MyTable';
with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add(sQuery);
open;
end;
这样都不行啊,说sql语句中语法有错啊,我真的要疯了 :((
 
为什么要放到临时表里??
直接查询出合乎条件的记录不就行了?
我不知道你用什么做报表。
不过建议用FastReport。
 
表是这个样子,
ID1 a 12:00:00
ID1 a 13:00:00
ID1 b 1:00:00
ID1 b 3:00:00
ID2 c 12:00:00
ID2 c 13:00:00
ID2 d 1:00:00
ID2 d 3:00:00

等等,现在要取出每一项时间最小的那个,每一项有多个时间,每个ID可能含有多个项,怎么用sql语句做呢?
我用的 D6自带的报表控件,QRGroup,现在要形成的报表是
ID1
a 12:00:00
b 1:00:00
ID2
c 12:00:00
d 1:00:00
用Table我能是报表分组,但我用query它就只显示个ID1,ID2,ID3都不讲芳踪,怎么回事呢?
及盼赐教!


 
用以下sql语句:
select Id,C,Min(t) as mint from xxx group by ID,c
 
你用Tclientdataset控件做临时表,把数据存入表中.
 
接受答案了.
 
后退
顶部