一旦我通过 SQL 更新语句更改了一些字段数据,我需要看到它反映在 DBGrid 中,我不确定我正在做的正确方法是否正确 -> IBTable.Refresh。无论如何,它暂时有效,但是第一次刷新尝试后DBGrid的垂直滚动条移动到底部,如果我更新然后再次刷新,垂直滚动条变小并移动到DBGrid的中间。我不知道如何通过在 DBGrid 本身中更改它来直接更新某个字段中的值,如果有人向我展示如何使用它的示例,我将不胜感激。
如何在发出 IBTable.Refresh 后将 DBgrid 的垂直滚动条移动到顶部位置并选择最顶行?
我的代码很简单,因为我仍在学习数据库(Firebird)和 Delphi 以及使用示例 EMPLOYEE 数据库:
procedure TForm1.Button1Click(Sender: TObject);
begin
//open IBQuery1, SQL command is in the component itself
IBQuery1.Open;
Label1.Caption := 'Tokyo''s budget was $' + TCaption(IBQuery1.FieldValues['BUDGET']);
//clear all SQL commands as it's TStrings and remembers prev. added lines
IBUpdateSQL1.ModifySQL.Clear;
//start building the SQL update statement
IBUpdateSQL1.ModifySQL.Append('update DEPARTMENT');
if IBQuery1.FieldValues['BUDGET'] = '30000' then
IBUpdateSQL1.ModifySQL.Append('set BUDGET = 500000')
else
IBUpdateSQL1.ModifySQL.Append('set BUDGET = 30000');
IBUpdateSQL1.ModifySQL.Append('where LOCATION = ''Tokyo''');
//execute SQL update
IBUpdateSQL1.ExecSQL(ukModify);
//close IBQuery1
IBQuery1.Close;
//let's see new field data
IBTable1.Refresh;
end;
我正在做的是从 select 语句中读取一些字段数据,并将其相应地更改为另一个值,反之亦然。
谢谢