首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用tadodataset delphi读取多表中的记录并在post时保存到表中

如何使用tadodataset delphi读取多表中的记录并在post时保存到表中
EN

Stack Overflow用户
提问于 2021-07-19 22:10:06
回答 3查看 174关注 0票数 0

我有一个连接到AdoDataset的网格。我想用join SQL从两个表中读取记录,但将记录保存在一个表中。

读取数据:

代码语言:javascript
复制
adodataset.commandtext := 'select * from Table1 left join Table2 on Table1.ID = Table2.ID';
adodataset.Open;

我只想在post时保存Table1字段

EN

回答 3

Stack Overflow用户

发布于 2021-07-20 12:07:37

您可以使用DBGrid.ColumnsReadOnly属性。例如,如果您有这样的查询:

代码语言:javascript
复制
ADODataSet1.CommandText := 'SELECT * FROM Table1 JOIN Table2 ON Table1.ID = Table2.ID';

然后,您的DBGrid将如下所示:

然后,您可以通过以下代码使第3列和第4列在设计时或运行时只读:

代码语言:javascript
复制
  DBGrid1.Columns[2].ReadOnly := True;
  DBGrid1.Columns[3].ReadOnly := True;

另请注意,如果您只想从Table1中删除记录,则应在ADODataSet1处于活动状态时运行以下代码:

代码语言:javascript
复制
ADODataSet1.Properties['Unique Table'].Value := 'Table1';

更新:

正如评论中所建议的,在DataSet级别设置所需的字段ReadOnly是一个好主意:

代码语言:javascript
复制
  ADODataSet1.FieldByName('ID_1').ReadOnly := True;
  ADODataSet1.FieldByName('Table2_Value').ReadOnly := True;
票数 1
EN

Stack Overflow用户

发布于 2021-07-20 20:12:34

首先,命令文本中的查询示例是错误的/不明确的。我不知道您想执行什么操作,但我猜您想要更改/保存表中的数据。在这种情况下,为什么不在sql中执行更新呢?假设您有一个名为"id“的主键字段,并且您想用另一个值保存一个名为"name”的字段。

代码语言:javascript
复制
var 
  id, NewName: string;
//...
begin
  //...
  id := adodataset.fieldbyname('id').AsString; 
  adodataset.connection.execute(
    'UPDATE table1 SET name = ' + quotedstr(NewName) + ' WHERE id = ' + quotedstr(id)
  ); 
  // refresh the records by closing and reopening the adodataset
  adodataset.close; 
  adodataset.open;
  // move to the wanted record
  adodataset.Locate('id', id, []); 
票数 1
EN

Stack Overflow用户

发布于 2021-07-20 01:52:04

为什么不使用TAdoQuery?

代码语言:javascript
复制
   Qry.Close;
   Qry.SQL.Clear;
   Qry.SQL.Add("select * from Table1 left join Table2 on Table1.ID = Table2.ID");
   Qry.Open;
   while not Qry.EOF do
   begin
      [do stuff]
      Qry.Next;
   end;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68441939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档