社区
数据库
帖子详情
vc操作mssql一小问题
liooi
2009-12-15 06:05:33
现在连的一远程mssql,每次查询比较慢,现在想一下把所有记录查询出来用数据集保存起来,然后针对数据集再次查询筛选。
现在问下那个数据集如何保存查询记录,而再次查询,多谢了。
...全文
147
15
打赏
收藏
vc操作mssql一小问题
现在连的一远程mssql,每次查询比较慢,现在想一下把所有记录查询出来用数据集保存起来,然后针对数据集再次查询筛选。 现在问下那个数据集如何保存查询记录,而再次查询,多谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wchlp
2009-12-15
打赏
举报
回复
友情顶贴
MoXiaoRab
2009-12-15
打赏
举报
回复
每次查询比较慢,现在想一下把所有记录查询出来用数据集保存起来
=================================
你放到视图或是表中不是一样的么
如果是复杂的SQL语句,放到新表里效率可能还会提高,放到视图里一点效率改变都没有的
liooi
2009-12-15
打赏
举报
回复
[Quote=引用 12 楼 tr0j4n 的回复:]
引用 10 楼 liooi 的回复:
引用 9 楼 tr0j4n 的回复:
对啊,按你的要求,就这样咯
没有那种查两次的语法?
看来我设想错了...
什么查两次?
[/Quote]
第一次全部查询出来,保存在视图或者表里面,然后再在视图或表里面筛选
MoXiaoRab
2009-12-15
打赏
举报
回复
[Quote=引用 10 楼 liooi 的回复:]
引用 9 楼 tr0j4n 的回复:
对啊,按你的要求,就这样咯
没有那种查两次的语法?
看来我设想错了...
[/Quote]
什么查两次?
sb3day
2009-12-15
打赏
举报
回复
使用视图
liooi
2009-12-15
打赏
举报
回复
[Quote=引用 9 楼 tr0j4n 的回复:]
对啊,按你的要求,就这样咯
[/Quote]
没有那种查两次的语法?
看来我设想错了...
MoXiaoRab
2009-12-15
打赏
举报
回复
对啊,按你的要求,就这样咯
liooi
2009-12-15
打赏
举报
回复
[Quote=引用 6 楼 tr0j4n 的回复:]
引用 4 楼 liooi 的回复:
引用 3 楼 tr0j4n 的回复:
可以弄个遍历RecordSet中的每行记录,各个字段放到一个结构体中,结构体存放到Vector里面
比如你的表有2个列,id和name
struct strData
{
string id;
string name;
}
vector <x> myVector;
strData z;
z.id=RecordSet里面取到的id
z.name=RecordSet里面取到的name
myVector.add(z);
- - 这样是可以,但好像不是那么回事,我那表查出来可能有几十万条记录。
问下可以第一次查出RecordSet,然后再在RecordSet中查这样语法有么,多谢了。
我晕
不是有MoveNext的么,指针下移不就好了,一直都只有一个RecordSet指针啊
[/Quote]
你的意思我把几十万记录全放在vector里?
然后再处理么
liooi
2009-12-15
打赏
举报
回复
[Quote=引用 5 楼 whs1980 的回复:]
如果直接通过SQL查询还比较慢,那么载到内存里再去过滤会更慢,并且占用更大的资源。
最理想的做法还是在数据库里把查询的结果找到。
(1)重新设计业务逻辑,优化查询语句
(2)使用存储过程,
[/Quote]
主要是远程的数据库服务器,高峰的时候访问比较蛮,早上很快,访问才30秒,中午可能就要10分钟了,SQL语句都是很简单的,没什么优化了,占用点资源没问题,关键我想问下有没 可以第一次查出RecordSet,然后再在RecordSet中查这样的语法?
MoXiaoRab
2009-12-15
打赏
举报
回复
[Quote=引用 4 楼 liooi 的回复:]
引用 3 楼 tr0j4n 的回复:
可以弄个遍历RecordSet中的每行记录,各个字段放到一个结构体中,结构体存放到Vector里面
比如你的表有2个列,id和name
struct strData
{
string id;
string name;
}
vector <x> myVector;
strData z;
z.id=RecordSet里面取到的id
z.name=RecordSet里面取到的name
myVector.add(z);
- - 这样是可以,但好像不是那么回事,我那表查出来可能有几十万条记录。
问下可以第一次查出RecordSet,然后再在RecordSet中查这样语法有么,多谢了。
[/Quote]
我晕
不是有MoveNext的么,指针下移不就好了,一直都只有一个RecordSet指针啊
whs1980
2009-12-15
打赏
举报
回复
如果直接通过SQL查询还比较慢,那么载到内存里再去过滤会更慢,并且占用更大的资源。
最理想的做法还是在数据库里把查询的结果找到。
(1)重新设计业务逻辑,优化查询语句
(2)使用存储过程,
liooi
2009-12-15
打赏
举报
回复
[Quote=引用 3 楼 tr0j4n 的回复:]
可以弄个遍历RecordSet中的每行记录,各个字段放到一个结构体中,结构体存放到Vector里面
比如你的表有2个列,id和name
struct strData
{
string id;
string name;
}
vector <x> myVector;
strData z;
z.id=RecordSet里面取到的id
z.name=RecordSet里面取到的name
myVector.add(z);
[/Quote]
- - 这样是可以,但好像不是那么回事,我那表查出来可能有几十万条记录。
问下可以第一次查出RecordSet,然后再在RecordSet中查这样语法有么,多谢了。
MoXiaoRab
2009-12-15
打赏
举报
回复
可以弄个遍历RecordSet中的每行记录,各个字段放到一个结构体中,结构体存放到Vector里面
比如你的表有2个列,id和name
struct strData
{
string id;
string name;
}
vector<x> myVector;
strData z;
z.id=RecordSet里面取到的id
z.name=RecordSet里面取到的name
myVector.add(z);
liooi
2009-12-15
打赏
举报
回复
可以保存到recordset么,然后再筛选
oyljerry
2009-12-15
打赏
举报
回复
可以把数据集中的数据放到内存中,自己维护一个链表List什么的,然后再在这个List中查询,进行二次筛选
vc
操作
my
sql
数据库工程
vc
操作
my
sql
数据库工程,内有教程,可添加、修改、删除数据并可显示所有数据。
VC
6.0 MY
SQL
连接 数据库
操作
事例
VC
6.0 MY
SQL
连接 数据库
操作
事例
VC
6.0 MY
SQL
连接 数据库
操作
事例
VC
6.0 MY
SQL
连接 数据库
操作
事例
VC
连接My
sql
数据库
刚做完一个
VC
+my
sql
的项目。my
sql
以前只是听说过,没有用过,这次用过后感觉还不错,特别是它强大的C API函数库。不过也有很大的缺点,比如说
操作
数据库和数据表不方便,要在类似于控制台的
操作
界面进行
操作
数据库。也就是基于这个原因,便想在项目里把数据库的创建,数据表的创建和对数据库的连接都放在程序里实现。方便用户的使用。
VC
连接my
sql
vc
使用ado连接my
sql
进行数据库
操作
VC
6 开发
操作
my
sql
数据库 代码 +
sql
文件 测试可用
VC
6 开发
操作
my
sql
数据库 代码 +
sql
文件 测试可用
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章