tadoquery 访问大规模数据库(记录》100万)急!!!!愿给所有分数

fxg 2003-08-20 04:45:27
我用的是sqlserver,其中有张表的记录超百万,当我用一条sql取其中记录时,内存就疯涨,请问有没分页读取记录的方法?? 表中没有主键,都是文本型
...全文
32 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanjin 2003-08-21
  • 打赏
  • 举报
回复
添加index,并且查询时尽量有where条件,不要把所有记录一下全搞出来
zhangjun025 2003-08-21
  • 打赏
  • 举报
回复
关注中....
光用TQuery,如果查出来的结果特别多(>10000),
Dbgrid一屏一屏点可以,
但直接拉到结果数据集最后一条的话,
程序吃不消。
有经历,97W8条BLOB记录 (Delph7+oracle9i)
XXSingle 2003-08-21
  • 打赏
  • 举报
回复
建主键,建索引...优化查询........
xiaoyuer0851 2003-08-21
  • 打赏
  • 举报
回复
都是文本类型,也可以设置主健索引啊

lwk_hlj 2003-08-21
  • 打赏
  • 举报
回复
表中没有主键,都是文本型
你好历害啊,设计数据不用主键,不用索引!NB啊
chenjiong 2003-08-20
  • 打赏
  • 举报
回复
1、优化库设计,索引很重要,SQL的话有查询优化器可以试试。
2、优化查询
3、尽量用最完整的查询条件.
yckxzjj 2003-08-20
  • 打赏
  • 举报
回复
尽可能对访问的数据记录加入最完整的查询条件!
huojiehai 2003-08-20
  • 打赏
  • 举报
回复
你用TQury吧,一会就出来了,在滚动DBbgrid时会自动到数据库取数据

你试试看看
bestluo 2003-08-20
  • 打赏
  • 举报
回复
你设个INDEX进行查询吧
很久没有发布东东了,今天看到盒子上有朋友发布了个三层的东东, 下来大概看了看,貌似使用起来不太方便,曾经用过ASTA和RmoObject,都不是那么让人满意,BUG多,并且庞大需要安装,使用十分不方便。 为了继续支持我喜欢的DELPHI和可爱的盒子, 特发布个自己写的远程数据库对象希望能给大家平常的工作带来便利和高效(偶自己和同事们都用了挺长时间,十分稳定易用)。 用DELPHI的朋友少不了要和数据库打交道,一般小程序都使用ACCESS做数据库感觉十分方便,不用装服务端,客户端不用单独装驱动, 发布程序时直接目录一拷贝就完事,但缺点是不方便从其它计算机对它进行访问, 有了偶这个东东,就可以很方便容易的实现咯。 ps : 就是连接Oracle和mysql,客户端也可以不用装驱动哦 使用步骤 解压后找个地方存放 将GobUnit目录添加到delphi的搜索路径 将DXSockEnt30(我改过bug的版本)的3个子目录也添加到delphi的搜索路径 即可使用和编译所有偶提供的代码 FAQ: 这个东东都提供什么功能? 答:提供最简单方便高效的方式,通过ADO对象实现远程数据库 这个东东为什么不封装成控件? 答:本类以单元形式封装,只要加到搜索路径后直接引用即可,无需经过安装等麻烦的步骤。 这个东东适合应用在什么场合? 答:适合应用于小型分布式程序。 这个东东掌握起来有难度吗? 答:没有任何难度,就和你开发本地数据程序一样简单。 这个东东可以应用在我已有的程序里吗? 答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定。 服务端的端口号是多少? 答:服务端的端口号可以随意设置,只要不和其他程序冲突就可以,并且客户端连接服务端时必须端口一致. 如果服务端重启了客户端需要重启吗? 答:不用,客户端只要连接上服务端以后就有自动断线重连的功能。 这个东东免费吗? 答:完全免费,并且开放所有源代码,你可以随意改进,传播它,当然如果更好用了,记得给我也发一份 :)(要保留偶的版权和注释信息哦) 这个东东使用到了那些控件? 答:delphi的ADO控件,INDY,以及第3方Dxsock(服务端用)。 同时发布的还有我自己积累的几个常用单元,有日志,调试,tcp的通用服务和客户端模块等,同样都是十分有用的东东。 这个东东有demo程序吗? 答:有最简单的示范程序,但时间关系只写了最简单的演示代码,还有很多值得你去挖掘的实用接口和单元。 我有了改进版本,怎么联系这个东东的作者? 答:QQ 22900104 ,Email 22900104@qq.com 马敏钊 发布这个东东的目的是什么? 答:好用的东东大家分享,共同学习,共同进步,希望大家都能发扬开源精神。 构架说明: 大概是这样的,偶有一个服务器对象,负责提供数据库服务,在需要提供数据服务的程序里创建它即可。 使用起来十分简单 首先引用服务端单元 uses UntRmodbSvr; //创建远程服务对象 (参数1 服务端口号 日志对象,如果不需要记录日志请填nil) Gob_RmoDBsvr := TRmodbSvr.Create(FSvrPort, nil); //连接数据库 可以是ADO支持的所有数据库 调用TDBMrg提供的获取各种数据库的链接字符串即可,这里连接Access数据库 Gob_RmoDBsvr.ConnToDb(TDBMrg.GetAccessConnStr('cfg.mdb')); 到此为止,2行代码使你的这个程序具有了将数据库发布出去的能力,其它机器的程序可以方便的通过它访问数据库,像使用本地数据库一样。 客户端只需连接服务端即可,不管服务端是什么样的数据库,无需安装任何数据库驱动。 uses UntRemSql; //创建客户端对象 RmoClient := TRmoHelper.Create(); //连接服务端 填入服务端地址和端口(与服务端端口一致即可) Result := RmoClient.ReConnSvr(ISvrIP, Iport); 2行代码使你的客户端程序具有了方便的访问到远端的数据库,像使用本地数据库一样,并且你原有的单机数据库程序可以很方便改为远程数据库。 具体使用方法可以查看DEMO程序 为了方便交流建了个QQ群,欢迎大家参与 15637473
基于数据库技术的物业管理信息系统 摘要 文章介绍了数据库技术产生及发展的历程,并在此基础上以物业管理信息系统开发为例 ,对系统开发中数据库技术的应用进行了探讨。 关键词 数据库技术;物业管理;信息 在物业管理中涉及到的数据较多。如为了更好地服务于业主及使用人,需了解业主及 使用人的基本信息;为了保障建筑物及设施设备能够正常发挥其功能,需了解建筑物及 设施设备的施工安装信息等。这些数据较复杂,除一般的结构化数据外,还有大量非结 构化的数据,如图形、模型等,这给数据的有效管理带来了麻烦。在物业管理信息系统 中引入数据库技术,解决了这一难题,使得数据的应用与存储独立,保证了数据存取的 一致性。 一、数据库技术的历史和发展 数据管理是数据库的核心任务,内容包括对数据的分类、组织、编码、储存、检索和 维护。从数据管理的角度看,数据管理到目前共经历了人工管理阶段、文件系统阶段和 数据库系统阶段。 1.人工管理阶段 人工管理阶段是指计算机诞生的初期(即二十世纪50年代后期之前)。这个时期的计 算机主要用于科学计算,从硬件看,没有磁盘等直接存取的存储设备;从软件看,没有 操作系统和管理数据的软件。数据处理方式是批处理。 2.文件系统阶段 文件系统阶段是指计算机不仅用于科学计算,而且还大量用于管理数据的阶段(从5 0年代后期到60年代中期)。在硬件方面,外存储器有了磁盘、磁鼓等直接存取的存储设 备,在软件方面,操作系统中已经有了专门管理数据的软件,称为文件系统,在处理方 式上,不仅有了文件批处理,而且能够联机实时处理。 3.数据库系统阶段 数据库系统阶段是60年代后期开始的。在这一阶段中,数据库中的数据不再是面向某 个应用或某个程序,而是面向整个企业(组织)或整个应用的。数据库系统解决了人工 管理和文件系统的弊端,它把数据的定义和描述从应用程序中分离出去,程序对数据的 存取全部由数据库管理系统(DBMS)统一管理。从而保证了数据和程序的逻辑独立性, 这样,数据就可以供各种用户共享且具有最小的冗余度,若建立了一个良好的数据库管 理系统软件,就可以为多种程序并发使用数据库提供了及时有效的处理,并保证数据的 安全性和完整性。 二、物业管理信息系统总体设计 物业管理信息系统软件开发环境用Windows XP作为操作系统,以保证软件研究和开发后有好的交互性;用Access 2003作为后数据库操作语言,可用于各种平台的关系数据库系统,它具有功能强、使用 简单、管理方便、运行速度快等优点,很适合于物业管理中的数据库系统;前端开发工 具选用Delphi语言,实现有关界面和代码设计,作为当前最流行的基于Windows功能环境 、面向对象的可视化应用软件开发工具,在数据库方面的优势尤为突出,Delphi连接数 据库的数据引擎为主要有 BDE、ADO、dbExpress和InterBase。其中利用ADO技术可以访问本地或远程数据库,并且 它具有速度快、占用内存少、直接使用API函数、支持Web应用开发、支持RDS(Remote Data Service)等优点。 三、物业管理信息系统数据库设计 1.数据库需求分析 根据系统要求和程序功能,系统需要以下数据:(1)业主和住户的信息。业主和住 户的信息包括业主和住户的姓名、楼号、门栋、楼层、房号、面积、入住时间、联系方 式等。(2)物业的信息。物业的信息包括两个方面:一是由建设单位或业主委员会在接 管验收时移交的物业资料,如竣工总平面图,单体建筑、结构、设备竣工图,配套设施 、竣工验收资料;设施设备的安装、使用和维护保养等技术资料;二是物业服务企业在 物业维修保养过程中积累的资料,如维修计划、维修保养记录等。(3)物业管理方面的 信息。物业管理方面的信息包括三个方面:一是管理基础资料,如物业服务合同、业主 公约、与专业分包公司签订的专业分包合同、物业管理年度工作计划以及物业服务企业 各项报告的批复等;二是管理标准、规章制度、管理服务实施细则等;三是有关员工的 资料,如员工的基本情况、工作岗位变动及奖惩情况等;四是物业管理收费资料,如收 费项目、欠费标准、交费情况、欠费记录等。 2.数据模块设计 利用Delphi中提供的数据模块窗体,可以避免通过向每个窗体中添加数据访问组件来 访问数据库中的数据,在其他窗体需要访问数据库时,只需在其单元文件中引用数据模 块的单元文件就可以直接访问到数据集中的数据了。 (1)给数据库建立连接 首先在窗体上添加TADOConnection组件,TADOConnection用于与一个物理数据库连接 ,它的CS属性用来制定数据提供者或服务提供者打开数据源连接所需要的信息,是多个 字符串的集合。 (2)选择数据访问组件 在窗体上添加数据访问组件:TADOTable、TADOQuery等,用于访问

2,497

社区成员

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

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