我是初学者,请教高手一个简单的问题,让大家见笑了!(100分)

  • 主题发起人 主题发起人 daisyyx
  • 开始时间 开始时间
D

daisyyx

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:

修改数据库时由于数据量大,需要提出部分数据加以修改,使用TTABLE的过滤技术还是使用TQUERY与TUPDATESQL控件结合。那一种比较好?

在运行期执行过滤:


procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
table1.filtered:=false;
table1.Filter:='''Name''=''Cuba''';
//Accept:=table1['name']='cuba';
table1.Filtered:=true;
end

不知为什么不执行?还需要设置什么吗?

 
用TQuery比较好。

你的例子应该这样写:
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:=table1['name']='cuba';
end;
将table1.filtered:=true的操作放到事件外.

 
用TQuery,可更新的
 
建议用TQuery
with query1 do
begin
close;
Sql.clear;
Sql.Add('相应的sql语句');
Open;
end;
 
建议使用TQuery,用SQL语句可以做任何事
 
用TQUERY与TUPDATESQL
 
leechange你好!

使用TQUERY时,由于返回结果是只读的,只有使用TUPDATESQL,该控件中的ModifySQL属性
中需要输入参数,不能直接在TDBGRID中修改数据!(ORACLE数据库)

我想在TDBGRID(数据集为TQUERY)中直接修改数据,我该怎么做?谢谢!
 
query1.close;
query1.sql.clear;
query1.add('select * from name=''Club''');
query1.open;
 
我做的小程序是通过BDE与ORACLE数据库连接。
使用TQUERY修改数据是只能用TQUERY与TUPDATESQL结合?
TUPDATESQL控件中的ModifySQL属性中需要输入参数!
我想在TDBGRID(数据集为TQUERY)中直接修改数据,我该怎么做?
谢谢各位朋友的回复!
 
从两方面考虑都还是用Query好。
因为:1、如果用Table的话,虽然你设置了Filter,BDE还是
一样把数据全部调到前端来,然后再加以过滤,可
以说完全不符合你所说的数据量较大的要求。
2、象这样写死在程序里的过滤对于以后的升级维护都
不好。

象你上面所说的具体问题可以这样解决:
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from aa where Name = cuba');
Open;
end;
这样调到前端的数据只是姓名等于“cuba”的数据,没有其它冗余
而且这样的用熟了还很灵活。
 
Query1.Add('Update ...');
 
后退
顶部