请教下大家Delphi开发的一软件,数据库SQL2000 ,几分钟不 *** 作,再打开,模块里面的明细数据就没了!

请教下大家Delphi开发的一软件,数据库SQL2000 ,几分钟不 *** 作,再打开,模块里面的明细数据就没了!,第1张

你说的是打开SQL server 2000的企业管理器,然后再打开表,表中的数据如果屏幕上鼠标都不动一下的话,几分钟后,表就是一张空表了吧?这很正常,因为SQL2000是一种网络数据库,你打开一张表,就在它的链接池建立了一个连接,一般来说连接池的连接数是有限的,因此SQL2000就建立了这种自动断开已经没有访问动作的链接的功能。但是如果用访问数据库的软件,就不会出现这种现象了,因为数据库中的数据一旦被数据库访问软件读取到软件所在的目标机上,就与数据库服务器无关了,也就是不接受SQL2000的控制了。

先做一个四张表的内连接,然后按照客户的编号分组

select客户名称,sum(产品价格数量)

from(

selectc客户名称,p产品价格,dd数量from客户表c

innerjoin订单表donc客户编号=d订单客户编号

innerjoin订单明细表ddondd订单编号=d订单编号

innerjoin产品表ponp产品编号=dd产品编号

wherec客户名称='客户1'

)

1 连接到数据库,例如用

ADOConnection设置连接数据库,

新建一个ADOQuery

2新建表格, 例如 table2a:

ADOQuerysqltext := 'CREATE TABLE table2a

(

name varchar(20),

age INT

)';

ADOQueryopen;

ADOQueryclose;

3 加入数据表

ADOQuerysqltext := 'BULK INSERT table2a FROM 'c:\table2a_filetxt'

WITH

(

FIELDTERMINATOR = ',',

ROWTERMINATOR = '\n'

)';

ADOQueryopen;

应该包括尽可能少的数据,并且达到尽可能高的效率。两者是矛盾的。

其实往往好的数据库软件总是在找数据量与数据存储效率之间的平衡。

应该包括尽可能少的数据,并且达到尽可能高的效率。两者是矛盾的。

其实往往好的数据库软件总是在找数据量与数据存储效率之间的平衡。

比如有个订单表和订单明细表

1、为了减少存储量

订单里面可以包含字段

ID,订单编号

订单明细表里面可以包含

ID,订单编号,商品编号,数量,商品单价

2、为了提高效率,减少查询时间

订单里面可以包含字段

ID,订单编号,总金额

订单明细表里面可以包含

ID,订单编号,商品编号,数量,商品单价,商品金额

你可以看到,一般日常总需要获取订单总金额的,但是实际上可以通过用 SQL 来获取,所以你不得不考虑是为了减少查询的时间而增加几个字段呢?还是为了节约存储数据量而增加查询时间呢?

以上就是关于请教下大家Delphi开发的一软件,数据库SQL2000 ,几分钟不 *** 作,再打开,模块里面的明细数据就没了!全部的内容,包括:请教下大家Delphi开发的一软件,数据库SQL2000 ,几分钟不 *** 作,再打开,模块里面的明细数据就没了!、数据库数据查询、delphi如何将明细表中的数据保存到数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9685390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存