告急,,请大家帮忙,,数据库问题……300分(300分)

  • 主题发起人 主题发起人 chatop
  • 开始时间 开始时间
C

chatop

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟初学,希望大家能尽量说清楚点,(请不要叫我去买书,因为我家离书店40公里的路程,
实在是太不方便)谢谢!
问题是这样的,我自己做了个数据库,用access做的
其在有三个表
表1:ID(这是系统自己加进来的),A1,A2,A3,A4,A5,A6
表2:ID(这是系统自己加进来的),B1,B2,B3,B4,B5
表3:ID(这是系统自己加进来的),C1,C2,C3,C4,C5,C6,C7
现在是如何把表1中的这些字段显示到listview中?
要用到那些控件,对于控件的属性设置。
最好对语句进行详细的说明,我可以好好学学,掌握要领。
另外,想知道一些常用的SQL语句的用法,和用SQL语句需要什么样的控件支持。
真的学到很多的东西,在这里谢谢大家,我出300分,谢谢大家,希望大家能尽量详细一点!!

 
没人呀?
都去看”三茗“了????
 
procedure TFrame_Grid.FillContents;
var
aobm:tbookmark;
i,j,ifields:integer;
newcolumn:tlistcolumn;
k: array of integer; // 列宽
ChineseName: String;
begin
setlength(k,1);
with ListView1 do
begin
items.BeginUpdate ;
ADODataSet1.open;
if not (csloading in componentstate) and (ADODataSet1<>nil) then
begin
items.Clear ;
columns.Clear ;
aobm:=ADODataSet1.getbookmark;
ADODataSet1.first;
ifields:=ADODataSet1.fieldcount;

newcolumn:=columns.add;
newcolumn.caption:='序号';
k[0] := length(newcolumn.caption) * abs(font.size);
newcolumn.width:=k[0];
newcolumn.Alignment:=tacenter;

for i:=0 to ifields-1 do
begin
ChineseName := ADODataSet1.fields.fieldname;
setlength(k,length(k)+1);
newcolumn:=columns.add;
newcolumn.caption:=ChineseName;
k[i+1] := length(newcolumn.caption) * abs(font.size);
newcolumn.width:=k[i+1];
newcolumn.Alignment:=taLeftJustify;
end;
j := 0;
while not ADODataSet1.eof do
begin
inc(j);
items.add.caption:=inttostr(j);
for i:=0 to ifields-1 do
begin
items[j-1].subitems.add(trim(ADODataSet1.fields.asstring));
if k[i+1] < length(trim(ADODataSet1.fields.asstring)) * abs(font.size) then
begin
k[i+1] := length(trim(ADODataSet1.fields.asstring)) * abs(font.size);
column[i+1].Width := k[i+1];
end;
end;
ADODataSet1.next;
end;
ADODataSet1.gotobookmark(aobm);
ADODataSet1.freebookmark(aobm);
end;
items.EndUpdate ;
end;
end;
 
对不起,能不能详细说明一下程序呀?
另外,用到了那些控件,这些控件的具体做用是什么?
请对程序做一下详细的描述,谢谢!
还有希望能写一些sql语句的用法和原理,谢谢
 
建议你找本delphi作数据库的书看看.
在找本数据库基础,补补sql语法
 
问题,现在找不到这种书呀,要去买的话有40公里的路呀,很累的,再说买回来也不一定有这方面
的资料,所以还是请教你们这些活字典比较好了,告诉我吧谢谢了!
 
query1.SQL.Clear ;
query1.SQL.Add('delete from 表1 where '+tj1+'') ;
query1.ExecSQL ;
query1.SQL.Clear ;
ch1:='表1 (年月份,工程队,房号,合计,房费,水费,电费,煤气费,赔罚款,蒸饭费,人数) select ' ;
ch2:='sum(房费+电量*电费标准+水量*水费标准+煤气量*煤气费标准+蒸饭量*蒸饭费标准+赔罚款) as 金额' ;
//query1.SQL.Add('insert into 表1 (年月份,用工部门,合计,房费,水费,电费,煤气费,赔罚款,蒸饭费,人数) select '''+edit4.Text +'''as 年月份,工程队,sum(房费+电量*电费标准+水量*水费标准+煤气量*煤气费标准+蒸饭量*蒸饭费标准+赔罚款) as 金额,sum(房费) as 房金,sum(水量*水费标准) as 水费,sum(电量*电费标准) as 电费,sum(煤气量*煤气费标准) as 煤气费,sum(赔罚款) as 罚金,sum(蒸饭量*蒸饭费标准) as 蒸饭费,count(*) as 记录数 from 房产清单 where '+tj1+tj2+tj3+tj4+tj5+tj6+tj7+' group by 工程队,房号 order by 工程队,房号');
query1.SQL.Add('insert into '+ch1+''''+edit4.Text +'''as 年月份,工程队,房号,'+ch2+',sum(房费) as 房金,sum(水量*水费标准) as 水费,sum(电量*电费标准) as 电费,sum(煤气量*煤气费标准) as 煤气费,sum(赔罚款) as 罚金,sum(蒸饭量*蒸饭费标准) as 蒸饭费,count(*) as 记录数 from 房产清单 where '+tj1+tj2+tj3+tj4+tj5+tj6+tj7+' group by 工程队,房号 order by 工程队,房号');
query1.ExecSQL ;
//query1.SQL.Clear ;
//query1.sql.Add('update 表1 set 工程队=(select 代码+名称 as 工程队 from 工程队)') ;
//query1.ExecSQL ;

query1.SQL.Clear ;
query1.SQL.Add('select * from 表1 where '+tj1+' order by 工程队');
query1.Open ;
i:=0;
while not query1.Eof do
begin
i:=i+1;
query2.SQL.Clear ;
ch1:='select * from 工程队 where 1=2' ;
if query1.FieldValues ['工程队']>'' then ch1:='select * from 工程队 where 代码='''+query1['工程队']+'''' ;
query2.SQL.Add(ch1) ;
query2.Open ;
query1.Edit ;
query1['序号']:=i;
if not query2.eof then query1['工程队']:= query2['代码']+query2['名称'];
if checkbox3.Checked =true then query1['用工部门']:=copy(combobox4.Text,1,20);
query1.Post ;
query1.Next ;
end;
query1.Close ;

这样你应该可以理解的
 
你不是可以上网吗?网上多的是.这方面的书很多。
http://www.tommstudio.com/newclub30/d_excellents.asp
你去上面看看有你要的。

 
谢谢合位,我看看上面friendship的解释,,先研究一下!
 
to friendship
可以是我没有说清楚吧!
我希望把一个数据库文件(mdb)中的一个表(表1)中的内容显示在listview中,需要那些控件,
各各控件的作用分别是什么?
使用什么控件对mdb文件进行连接,使用什么控件取出数据库中的字段名?就是这样。。。然后
要将这些东西显示到listview中,,我想对于大家来说应该是很简单的问题呀,我是初学者
请加以解释,谢谢!!
 
listview
adoquery
 
ADO的query根本没有地方定义数据库的位置呀?????

请各位DFW们,尽力一点,这可是300分呀!!
 
不是吧,没人呀????
那么简单的问题都没人回答?

问题简单来说就是
用什么控件来连接一个mdb数据库,用什么控件把数据库里的内容显示到listview里面去,,
都会不会呀????????
 
何必这么急,在delphi中这包含很多例子,
为什么不自己练练,
看别人的进步并不会太大。
 
那个列子我都看过了,不行呀………看不懂呀…
 
你问的都是最基本的问题,而且不是一下子就可以说清楚的,所以他们不肯回答,你还是
自己看一下书,有不懂的,再问吧。
 
不要急,不能着急,一口是吃不成胖子的,太着急会适得其反的. 最好从最初开始,如果需要我可以给你一点电子书,需要给我留言.我的email是lby_999@sina.com
 
后退
顶部