求数据库程序设计方案

shadowstar 2009-06-10 02:34:25
要求:

ADO组件,Access数据库。

----

假设:有三个表: forum, thread, post

以论坛的数据库来举例说明,并非实际情况。

----

表内容:

forum:

+-----------------------+
| 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
...全文
29 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 shadowstar 的回复:]
老妖不厚道
[/Quote]


结束围观。开始简单回答一下,基本上最简单的Access数据库应用,就是个TADOConnection + TADOQuery(或TADOTable) + TDataSource + TDBGrid
TADOConnection 负责连接数据库,这个对象可以公用,其他的若干个数据集组件如TADOQuery或TADOTable将Connection属性设置为该对象即可
TADOQuery/TADOTable 负责读写数据库,并返回数据集
TDataSource 是数据源,为其他的数据库感应组件或子查询数据集等提供数据源
TDBGrid 是数据表格,负责显示数据,可根据需求自定义显示列

其中数据集组件TADOQuery支持SQL语句,在使用上比较方便,可以通过SQL语句进行增加/编辑/删除/更新/查询等操作,也可以通过相应的方法Add,Delete,Post等来实现。

总的来说,用VCL提供的这些组件访问数据库相对很简单的,做个小例子自己熟悉一下就OK了。
阿三 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 shuihan20e 的回复:]
那二个胸罩你咋得到的?
[/Quote]
数据库设计怎么和胸罩还扯上关系了呢,你俩啥关系?坦白
shuihan20e 2009-06-10
  • 打赏
  • 举报
回复
那二个胸罩你咋得到的?
shadowstar 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ccrun 的回复:]
围观
[/Quote]
老妖不厚道
shadowstar 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bdmh 的回复:]
引用 2 楼 shadowstar 的回复:
如果用一个Query,三个源那怎么显示数据?



一个Query当然可以显示三个表,你要把三个表联合inner join 因为第一个表可以和第二个表通过字段fid去inner join
第二个和第三个表通过字段tid去inner join
[/Quote]

那插入数据后更新呢?是不是要关闭再打开?

关闭再打开的话是不是指向第一条记录?触发了一次AfterScroll事件?
ccrun.com 2009-06-10
  • 打赏
  • 举报
回复
围观
bdmh 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shadowstar 的回复:]
如果用一个Query,三个源那怎么显示数据?
[/Quote]

一个Query当然可以显示三个表,你要把三个表联合inner join 因为第一个表可以和第二个表通过字段fid去inner join
第二个和第三个表通过字段tid去inner join
jddj007 2009-06-10
  • 打赏
  • 举报
回复
关注,围观
shadowstar 2009-06-10
  • 打赏
  • 举报
回复
楼上的又来晕,我们认识?
shuihan20e 2009-06-10
  • 打赏
  • 举报
回复
shadowstar 2009-06-10
  • 打赏
  • 举报
回复
楼上说的太简单了吧。

可以假设我对数据库一无所知,如果麻烦的话可以再加分。



如果用一个Query,三个源那怎么显示数据?
lizhigan 2009-06-10
  • 打赏
  • 举报
回复
ADOConnection1,Query1,DataSource1 三个原加上StringGrid1 和DBGrid1

StringGrid1 用于数据录入和查询显示
DBGrid1 数据修改
.....

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧