您来这里的目的是什么?

Sammo 2001-08-22 04:04:44
我来到这个BCB的专版的主要目的就是要交朋友、学习,向各位大哥学习,来这里解决一些自己无法解决的问题,聊聊天,所以有请各位老大们尽量帮帮小弟!说句心里话,小弟真的很喜欢这里的人!这里的人很好客,好像sephil、TR@SOE()、程序猪、RH(有花)、玉笛书生、叶秋枫、过江项羽呀等等,很多很多,很热闹!以前要有什么得罪各位大哥的,请原谅小弟咯!小弟在这里赔罪了!

各位老大、各位BCB的前辈们,小弟有礼了!请允许我在这里提出这样的两个问题,小弟刚来这里不久,所以分数就不多咯!就拿出这100分求解吧!请不要不理我好吗!?!虽然我不是MM,不是漂亮的MM,但我是一个讲义气、很热情、喜欢交朋友的人!(我想把这100分全给一个人,一个解决得最好的老兄,不知道这样子给分好不好?给点意见吧!:)))


第一:
我有一个数据库,第一和第二个字段是:编号、姓名,现在我要把这两个字段的所有记录的内容放到两组数组变量中去,比如说:szBH[1000],szXM[1000],每增加一个记录,就加到这两组变量中去,这些我都已经会了,但现在主要的问题是:每次进入程序时,我都要从头到尾读一次数据库,把这两个字段的内容全部读到数组变量中,好在输入时进行比较用,最大问题就在这里了:程序初始化时从头到尾把这两个字段的内容读到数组变量中去要耗费很多时间,才500个记录却要50多秒钟啊!!!(我是使用ADO的ACCESS)有没有什么更好的办法呢?详细说一下好吗?

第二:
用ADO的ACCESS数据库很不好用,我现在要使用IB的数据库,想搞一个IB的C/S式的数据库应用程序,就麻烦各位大哥们帮个忙,我现在有两台机器,一台安装了WINNT4.0SERVER,另外一台是WIN98,98的已经安装好了BCB5了,现在要知道的是:我要搞IB的C/S式的数据库应用程序,要在NT是要安装些什么?要进行哪些设置?在98里要安装些什么?要进行哪些设置?最后,要用IB的哪些控件?请列出来!要是有一份这方面的详细资料就更好了!
...全文
1219 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2001-09-06
  • 打赏
  • 举报
回复
使用TTable或TQuery...等數據控件,在循環中,請注意先關閉AfterScroll,onCalcFields事件,字段的GetText事件也是耗時的罪人之一。
如果不顯示的話,斷開數據源的鏈接。這與速度分分鐘相關。
在函數中可如下封裝,例:
{
TDataSetNotifyEvent p = Table1->AfterScroll;
Table1->AfterScroll = NULL;
Table1->DisableControls();
while(!Table->Eof)
{...
Table1->Next();
}
Table1->AfterScroll = p;
Table1->EnableControls();
}
/*
這些事件應該是造成速度慢的原因吧,如果不是這些原因,我非常想知道(552條記錄(每條記錄<100字節),18秒--在10M局域網上是為什么那么慢!)。
必須要在程序中使用數組的原因(數據量不大時),多多吧,比如,頻繁的排序,統計,經常性的修改(一個圖的最短路徑的計算或一個矩陣的變換問題,那個中間過程就得不停地改數據,可我們只要一個結果回存到數據庫中去),我想,那要看各人怎樣想了。很多情況下看怎樣取舍了。
*/


Sammo 2001-08-29
  • 打赏
  • 举报
回复
请大家不要嫌分少哦!:))
ITCOM 2001-08-29
  • 打赏
  • 举报
回复
Sammo非要使用数组………… 是我不会这么做,完全抹煞了数据库的意义!
只好出次下策……
Sammo 2001-08-29
  • 打赏
  • 举报
回复
既然大家都没有人理我啦!!
那我结贴算了!!虽然问题还没有解决!!哎!!!!
Sammo 2001-08-28
  • 打赏
  • 举报
回复
Up........
诚心求取InterBase方面的开发资料!!!!!:))
Sammo 2001-08-27
  • 打赏
  • 举报
回复
为什么书上介绍InterBase方面都是很简单的带过呀?!有没有详细点介绍的呀!?:))
yushaofeng 2001-08-27
  • 打赏
  • 举报
回复
study
good luck to you
Sammo 2001-08-27
  • 打赏
  • 举报
回复
请看楼上!
主要的InterBase还没有解决!!
大哥们快快抽点时间帮帮我呀!!
让我好结贴哦!!!!:))
Sammo 2001-08-27
  • 打赏
  • 举报
回复
谢谢joney1(爱的根源)!!! ~!o!~
哪位大哥提供一些IB的资料呀!?:))
8追8梦8 2001-08-27
  • 打赏
  • 举报
回复
试试 TFields 啦,也许可以帮你的:)
关于IB的我没用过,不好意思啦:)
Sammo 2001-08-27
  • 打赏
  • 举报
回复
楼上的各位兄弟呀~~~~~~~~~~~~~~~~~~
为什么不理我啦!?!?
InterBase的问题啊!!!!!!!!!!!!
不告诉我怎么做,那也请您告诉我哪里有这方面的资料咯!!!!!!!!:(( :))
Sammo 2001-08-27
  • 打赏
  • 举报
回复
Up.........InterBase
Sammo 2001-08-26
  • 打赏
  • 举报
回复
To:lluunn007(此情可待成追忆,只是当时已惘然 )
就是咯!谢谢您哦···关于慢的问题请看这个:

Sammo(三毛) 回复于2001-8-23 2:40:18
很感谢各位大哥的热心帮助!!谢谢!!!!:))
对于第一个问题,我想请大哥们看看下面的程序:
int i;
int iNumberCount=ADOTable1->RecordCount;
for(i=0;i<iNumberCount;i++)
{

ADOTable1->Next();
}
数据库里只有522条记录,为什么上面的程序执行完毕都要18秒钟这么久呢?

对于第二个问题,有请各位大哥详细点说说好吗!?谢谢!!:))
书生 2001-08-26
  • 打赏
  • 举报
回复
to 三毛:
数组赋值的时候最好使用地址赋值,如果用的是下标赋值的话会慢很多.

你现在不能UP了是吧?

呵呵

up~
Sammo 2001-08-26
  • 打赏
  • 举报
回复
谢谢!!
其实除了这两个功能以外,放到数组里我还有其他用途的!!:))

InterBase方面的编程有没有一些详细的介绍,或者一些例子看看!?:))
snla 2001-08-26
  • 打赏
  • 举报
回复
够意思!
KingSunSha 2001-08-26
  • 打赏
  • 举报
回复
虽然我不懂BCB,但好像没听说过老兄这种做法。如果你的表中有几万条记录你也把全部数据读进来吗?
数据库本身就提供了你要的功能。
<第一是想防止重新输入>:防止重复输入有很多种办法,比如在输入完成后马上去执行一段代码判断表中是否已经存在该记录;或者把表中的字段设成位一,在提交的时候判断。后一种方法最常用。
<第二是想在另外的一个数据库里输入数据时,从变量中查找,当输入存在的编号时,要是已经存在,就自动把姓名输出到要输入的“姓名”栏!>:输入编号以后马上执行一段代码,根据编号拿回姓名就行了。
Sammo 2001-08-26
  • 打赏
  • 举报
回复
比如说我用的是Query控件,查询后我想取得结果的第一个值怎么取?
火鸟33 2001-08-26
  • 打赏
  • 举报
回复
好想方向都错了

数据本来就存在数组里(DataSet),你再倒一次什么意思?直接拿来用就是了
也能排序和索引
ITCOM 2001-08-26
  • 打赏
  • 举报
回复
c++builder里面有专门为interbase存取的IB****的控件,好不好用看你怎么设计了,呵呵
加载更多回复(31)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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