要求: ADO组件,Access数据库。 ---- 假设:有三个表: forum, thread, post 以论坛的数据库来举例说明,并非实际情况。 ---- 表内容: forum: SQL code
+-----------------------+
| fid | start | stop |
+-----------------------+forum:
+-----------------------+
| tid | fid | time |
+-----------------------+
post:
+-------------------------------+
| pid | fid | tid | types |
+-------------------------------+types是字符串,表示post的类型,可能含有多种,用';'分开,在插入数据后用表达式算出再更新数据。
显示的时候这个有点麻烦,不知道有没有什么好办法。
不过这个不是重点,麻烦点也没关系。
关键是我不知道应该用哪几个组件,分别用在什么地方。 ---- 数据录入: 1、程序开始运行,向forum表插入一条记录,写入开始时间,得到自动递增的fid
2、收到数据X,向thread表插入一条记录,写入当前的fid,得到自动递增的tid
3、X中的数据细分为N条,插入post中,写入当前的fid,tid,得到自动递增的pid
4、程序停止运行,更新forum表当前记录的结束时间 ---- 数据读取: 1、插入数据后立即显示相关内容
2、可查看以前的记录
3、显示fid对应的thread_count, count(*) as thread_count where forum.fid=thread.fid
4、显示fid对应的thread_first, min(tid) as thread_first where forum.fid=thread.fid (我是用Delphi编程的)
+-----------------------+
| fid | start | stop |
+-----------------------+forum:
+-----------------------+
| tid | fid | time |
+-----------------------+
post:
+-------------------------------+
| pid | fid | tid | types |
+-------------------------------+types是字符串,表示post的类型,可能含有多种,用';'分开,在插入数据后用表达式算出再更新数据。
显示的时候这个有点麻烦,不知道有没有什么好办法。
不过这个不是重点,麻烦点也没关系。
关键是我不知道应该用哪几个组件,分别用在什么地方。 ---- 数据录入: 1、程序开始运行,向forum表插入一条记录,写入开始时间,得到自动递增的fid
2、收到数据X,向thread表插入一条记录,写入当前的fid,得到自动递增的tid
3、X中的数据细分为N条,插入post中,写入当前的fid,tid,得到自动递增的pid
4、程序停止运行,更新forum表当前记录的结束时间 ---- 数据读取: 1、插入数据后立即显示相关内容
2、可查看以前的记录
3、显示fid对应的thread_count, count(*) as thread_count where forum.fid=thread.fid
4、显示fid对应的thread_first, min(tid) as thread_first where forum.fid=thread.fid (我是用Delphi编程的)
关键是我不知道应该用哪几个组件,分别用在什么地方。这个来看,你是DELPHI问题?
2、显示数据可以用GRID,设置DATASOURCE;
3、执行SQL语句用ADOQUERY。
如果只是更新数据,确实一个ADOQuery就OK了,
如果你要在GRID中显示三个表的记录,就要三个 ADOQuery了。
是这样,更新后要用ADOQuery重新加载数据,加载数据时,要先关闭,再执行SQL语句,对速度是有一定影响,取决于数据量的多少。打开时是指向的第一条数据(所有的数据库都是如此),你要显示最后一条,要adoquery1.last