因为带宽有限,如果要把数据都读到本地,在按filter去过滤,那么速度肯定有问题。
假如设定好filter后ttable直接生成的是select * from table_aaa where age=19这样的请求,那么过滤操作就在服务器端进行了,也就不用传递所有数据了。
所以请教各位TTable的filter到底是怎样实现的???
11 个解决方案
#1
是把数据都读到本地,再按filter去过滤!有sql monitor为证。
#2
那可怎么办呀???
我用TQuery又不能edit,设置requestlive又不能支持特殊语法,请教各位有什么好的办法呀!!!
pb就不这样!
我用TQuery又不能edit,设置requestlive又不能支持特殊语法,请教各位有什么好的办法呀!!!
pb就不这样!
#3
用TQuery直接修改Sql属性,然后执行ExecSql函数就可以了,怎么会不行呢
#4
如果你用的是SQL Server,你可以在服务器端用SQL Trace(6.5) 或 Profiler(7.0) 来查看客户端发送给服务器的SQL 语句稍加分析一下 , 就可以知道其运行方式了!
我记得好象是由TTable组件形成SQL语句,过滤操作是在服务器上执行的
我记得好象是由TTable组件形成SQL语句,过滤操作是在服务器上执行的
#5
TQuery可以啊!
加TUpdatesql组件就可以对多表查询操作了!
加TUpdatesql组件就可以对多表查询操作了!
#6
TUpdatesql的用法和TQuery一样吗???!!!!
不过我还是想搞明白TTable的filter到底是怎样运做的!!!
请各位继续讨论,明日结贴。
不过我还是想搞明白TTable的filter到底是怎样运做的!!!
请各位继续讨论,明日结贴。
#7
同意WhyAndAnswer(明白) 的作法。
我都很久没有用过了,不过记得BCB的帮助中专门有教如何使用UpdateSQL。大概是这么一个过程:放一个TQuery和一个TUpdateSQL,你在TQuery中把requestlive设为true,并把其UpdateObject设为TUpdateSQL,当TQuery被更改后,TQuery会调用TUpdateSQL中的对应的语句(Insert,Delete,Update,这样语句是TUpdateSQL的属性,你自已写的)。说是这样,有一些细节是要处理的如UpdateRecord事件,细节看帮助吧。
我都很久没有用过了,不过记得BCB的帮助中专门有教如何使用UpdateSQL。大概是这么一个过程:放一个TQuery和一个TUpdateSQL,你在TQuery中把requestlive设为true,并把其UpdateObject设为TUpdateSQL,当TQuery被更改后,TQuery会调用TUpdateSQL中的对应的语句(Insert,Delete,Update,这样语句是TUpdateSQL的属性,你自已写的)。说是这样,有一些细节是要处理的如UpdateRecord事件,细节看帮助吧。
#8
* 回复人: WhyAndAnswer(明白) ( ) 信誉:100 2002-06-19 12:54:00 *得分:0 是把数据都读到本地,再按filter去过滤!有sql monitor为证。
所以filter应就是自在内存中把要找的数据给找出来。
所以filter应就是自在内存中把要找的数据给找出来。
#9
使用Query,
Query1->SQL->Add("Insert into Table Values(:ID,:ImageField)");
..............
Query1->Params->ParamByName("ImageField")->SetBlobData(lpBuf,size);
Query1->ExecSQL();
lpBuf为存放数据的缓存。
Query1->SQL->Add("Insert into Table Values(:ID,:ImageField)");
..............
Query1->Params->ParamByName("ImageField")->SetBlobData(lpBuf,size);
Query1->ExecSQL();
lpBuf为存放数据的缓存。
#10
学习
#11
filter其实我觉得作用不是很大,多表的filter我没用过。
说一下:UpdateSQL
拉一个TUpdateSQL组件,设置Query1->UpdateObject=UpdateSQL1,打开UpdateSQL1的编辑器,应已列出了所有的字段,选择你要更新修改的字段,点击Generate SQL,就可以了!
说一下:UpdateSQL
拉一个TUpdateSQL组件,设置Query1->UpdateObject=UpdateSQL1,打开UpdateSQL1的编辑器,应已列出了所有的字段,选择你要更新修改的字段,点击Generate SQL,就可以了!
#1
是把数据都读到本地,再按filter去过滤!有sql monitor为证。
#2
那可怎么办呀???
我用TQuery又不能edit,设置requestlive又不能支持特殊语法,请教各位有什么好的办法呀!!!
pb就不这样!
我用TQuery又不能edit,设置requestlive又不能支持特殊语法,请教各位有什么好的办法呀!!!
pb就不这样!
#3
用TQuery直接修改Sql属性,然后执行ExecSql函数就可以了,怎么会不行呢
#4
如果你用的是SQL Server,你可以在服务器端用SQL Trace(6.5) 或 Profiler(7.0) 来查看客户端发送给服务器的SQL 语句稍加分析一下 , 就可以知道其运行方式了!
我记得好象是由TTable组件形成SQL语句,过滤操作是在服务器上执行的
我记得好象是由TTable组件形成SQL语句,过滤操作是在服务器上执行的
#5
TQuery可以啊!
加TUpdatesql组件就可以对多表查询操作了!
加TUpdatesql组件就可以对多表查询操作了!
#6
TUpdatesql的用法和TQuery一样吗???!!!!
不过我还是想搞明白TTable的filter到底是怎样运做的!!!
请各位继续讨论,明日结贴。
不过我还是想搞明白TTable的filter到底是怎样运做的!!!
请各位继续讨论,明日结贴。
#7
同意WhyAndAnswer(明白) 的作法。
我都很久没有用过了,不过记得BCB的帮助中专门有教如何使用UpdateSQL。大概是这么一个过程:放一个TQuery和一个TUpdateSQL,你在TQuery中把requestlive设为true,并把其UpdateObject设为TUpdateSQL,当TQuery被更改后,TQuery会调用TUpdateSQL中的对应的语句(Insert,Delete,Update,这样语句是TUpdateSQL的属性,你自已写的)。说是这样,有一些细节是要处理的如UpdateRecord事件,细节看帮助吧。
我都很久没有用过了,不过记得BCB的帮助中专门有教如何使用UpdateSQL。大概是这么一个过程:放一个TQuery和一个TUpdateSQL,你在TQuery中把requestlive设为true,并把其UpdateObject设为TUpdateSQL,当TQuery被更改后,TQuery会调用TUpdateSQL中的对应的语句(Insert,Delete,Update,这样语句是TUpdateSQL的属性,你自已写的)。说是这样,有一些细节是要处理的如UpdateRecord事件,细节看帮助吧。
#8
* 回复人: WhyAndAnswer(明白) ( ) 信誉:100 2002-06-19 12:54:00 *得分:0 是把数据都读到本地,再按filter去过滤!有sql monitor为证。
所以filter应就是自在内存中把要找的数据给找出来。
所以filter应就是自在内存中把要找的数据给找出来。
#9
使用Query,
Query1->SQL->Add("Insert into Table Values(:ID,:ImageField)");
..............
Query1->Params->ParamByName("ImageField")->SetBlobData(lpBuf,size);
Query1->ExecSQL();
lpBuf为存放数据的缓存。
Query1->SQL->Add("Insert into Table Values(:ID,:ImageField)");
..............
Query1->Params->ParamByName("ImageField")->SetBlobData(lpBuf,size);
Query1->ExecSQL();
lpBuf为存放数据的缓存。
#10
学习
#11
filter其实我觉得作用不是很大,多表的filter我没用过。
说一下:UpdateSQL
拉一个TUpdateSQL组件,设置Query1->UpdateObject=UpdateSQL1,打开UpdateSQL1的编辑器,应已列出了所有的字段,选择你要更新修改的字段,点击Generate SQL,就可以了!
说一下:UpdateSQL
拉一个TUpdateSQL组件,设置Query1->UpdateObject=UpdateSQL1,打开UpdateSQL1的编辑器,应已列出了所有的字段,选择你要更新修改的字段,点击Generate SQL,就可以了!