怎么循环读出数据库的数据

advancejar 2005-05-20 09:15:16
我有一个数据库,结构是这样的
|----------------------
|姓名 |学号 |
|----------------------
|张三 |1 |
|----------------------
|李四 |2 |
|--------------
|...........
怎么循环取出里面的数据,放到edit1 edit2...

...全文
188 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
henryzkf 2005-05-21
  • 打赏
  • 举报
回复
应该不是很难的哦。
lovend 2005-05-21
  • 打赏
  • 举报
回复
显然你的解决问题的思路是不对的,如果要自动创建那么多,比如1000个edit或者更多,我看服务器都给你整死机了。

我建议你改用stringgrid代替edit,quaery中的一行对应stringgrid中的一行。

你把你需要讲出来,也许这里的人能给你一个科学的解决办法,比如为什么要让这样多数据显示在这样多的edit中,很多人做程序总是异想天开,想象变魔术一样实现自己的理想,那是不可能的。



icbcnq 2005-05-21
  • 打赏
  • 举报
回复
--我有1000条纪录,那我不是要放1000个edit了?
请分清楚记录和字段的区别。

如果你要显示1000条记录,那就用dbgrid之类的表格控件好了。
如果你只想一次显示一条记录的内容,那我觉得你的问题问得有点让人产生歧义的感觉。再往后看看你的表述,无非就是想根据字段的多少动态产生edit来显示字段内容。还是循环语句可以解决:根据字段数逐一产生edit,确定edit的大小和位置,最后显示内容。退出时还要记得一一释放。一句话:麻烦。
rcyboom 2005-05-21
  • 打赏
  • 举报
回复
先根据数据库的记录条数recordcount合理设计好版面,每页放几个合适,如果多余这个数目就需要换页显示了。
然后每读一条记录根据tedit类创建一个edit控件,另外你还需要使它可见并且显示在适当的位置。
适当说一句,最好利用链表,因为你需要记下你每次创建的hander,到最后还需要在一一释放这些资源的。
advancejar 2005-05-21
  • 打赏
  • 举报
回复
advancejar 2005-05-20
  • 打赏
  • 举报
回复
to 回复人: duanhai(段海)
楼主为什么不用DBGrid?

我是借问这个问题解决别的问题,而不是特定要解决这个问题
所以在你看来我是比较认死理的,觉得我非用这个不可

其实我要用这个问题的原理解决别的问题,请你谅解我的
duanhai 2005-05-20
  • 打赏
  • 举报
回复
楼主为什么不用DBGrid?
advancejar 2005-05-20
  • 打赏
  • 举报
回复
to icbcnq(武汉人)

循环语句

while (not eof())and(not bof()) do
begin
edit1.text:=...
edit2.text:=...
end;

另外还需要控制表中记录指针的移动(向前、向后)


你的方法是不可行的,我有1000条纪录,那我不是要放1000个edit了?
我要让系统自己创建edit

advancejar 2005-05-20
  • 打赏
  • 举报
回复
比如我有10个edit

我要循环赋值(我就要这么做,不要用别的方法代替)
var nnn:integer;
begin
nnn:=1;
edit?我要用edit(nnn)表示,我该怎么弄?
icbcnq 2005-05-20
  • 打赏
  • 举报
回复
循环语句

while (not eof())and(not bof()) do
begin
edit1.text:=...
edit2.text:=...
end;

另外还需要控制表中记录指针的移动(向前、向后)
老赵同志110 2005-05-20
  • 打赏
  • 举报
回复
我晕,你有多少个Edit?
怎么会要把数据库里的东西取出来放到这里呀?
提供2个思路:
1:一个字段一个字段的读取,然后把他放到Edit里去。
2:读出一条记录,然后分别把每个字段的值赋给Edit1,edit2....

2,497

社区成员

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

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