sql server 的企业管理器显示数据的方法

ding1188 2009-03-11 01:33:42
在sql server的企业管理器下,当表的数据量很大时候,执行打开表--》返回所有行的操作,sql server会显示一部分数据。当向下拖动滚动条的时候,再显示新的数据。我想问问,这是用什么方法实现的?
...全文
143 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ding1188 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 TianChong 的回复:]
取数据的时候,可以用一个数据集全部取出,但显示时定位到数据集对应的行上,再连续读取并显示即可。
[/Quote]
我发现,企业管理器里面显示数据的速度比查询分析器来的快。企业管理器是不是做了什么处理呢?
TianChong 2009-03-11
  • 打赏
  • 举报
回复
取数据的时候,可以用一个数据集全部取出,但显示时定位到数据集对应的行上,再连续读取并显示即可。
TianChong 2009-03-11
  • 打赏
  • 举报
回复
这是根据一个CDATAGRID类来实现的,简单的说就是先查询数据表,得到总行数count,然后根据你的DATAGRID每次可显示的最大行数x(如x=50行),那就显示最开始的50行,其它的不显示,并且将50/COUNT得到一个比例,将竖向拉杆的位置设置到相对;应的位置,然后,将用户拖动拉杆到新位置时,计算这个位置相对于整体拉杆的百分比,如拉到了3/5的位置,那就将3/5*count得到最间行的位置,那要显示的行当然就是从3/5*count - (x/2) 至 3/5*count + (x/2)的位置了,当然,还要判断一下是否到尾了,如果到尾了,要从尾部直接反算出x条记录来显示,如果到头也,也一样,要从头开始显示开始的x条,如果一共才不到x条,那就全部显示,而且拉杆不可用。
stuarts740 2009-03-11
  • 打赏
  • 举报
回复
我觉得主要有两个关键点:
1、用sql语句控制每次取出数据的数量
2、捕获滚动条消息
//附加数据库 sp_attach_db 当使用 sp_attach_db 系统存储过程附加数据库时。 sp_attach_db:将数据库附加到服务器。 语法 sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ] 参数 [@dbname =] 'dbname' 要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。 [@filename1 =] 'filename_n' 数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。 参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。 该列表还必须包括数据库分离后所有被移动的文件。 返回代码值:0(成功)或 1(失败) eg:下面的示例将 pubs 中的两个文件附加到当前服务器。 EXEC sp_attach_db @dbname = N'pubs', @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf' EXEC sp_attach_db @dbname = N'Ty20051029101451aaa', @filename1 = N'd:\5屏幕\Ty20051029101451aaa_data.mdf', @filename2 = N'd:\5屏幕\Ty20051029101451aaa_log.ldf' ---解决问题了 //删除数据库 DROP DATABASE 从Microsoft? SQL Server? 删除一个或多个数据库。删除数据库将删除数据库所使用的数据库文件和磁盘文件。 语法 :DROP DATABASE database_name [ ,...n ] 参数 :database_name 指定要删除的数据库名称。从 master 数据库中执行 sp_helpdb 以查看数据库列表。 eg: exec sp_helpdb database_name exec Drpo DataBase [Ty20051029101451aaa] //分离数据库 可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE 重新附加。 sp_detach_db Archive GO CREATE DATABASE Archive ON PRIMARY (FILENAME = 'c:\program files\microsoft sqlserver\mssql\data\archdat1.mdf') FOR ATTACH GO //显示当前数据库信息 --select * from Master..sysDatabases //新建---不行啊 CREATE DATABASE TestOA ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE RESTORE DATABASE TestOA From disk='C:\Documents and Settings\Administrator\桌面\帐套\data\Template.Dat' ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE exec sp_detach_db Km20051030011601 --分离数据库 exec sp_attach_single_file_db km20051030011601,'D:\TestDatabase\Km20051030011601.mdf'--只附加.mdf文件

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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