gpt4 book ai didi

sql - 使用多个 SQL 查询

转载 作者:行者123 更新时间:2023-12-03 19:42:44 25 4
gpt4 key购买 nike

我已经进行了一些搜索,但找不到明确的答案。

我刚刚进入 SQL,所以要温柔。使用 D5、TNTUnicode、Zeos 和 SQLite3

我有一个 DBGrid,其中显示了 tblAccounts 中的所有帐户名称。
我有一个 DBGrid,其中显示了 tblFolders 中的所有文件夹。

在 Accounts 网格的 OnCellClick 中,我有一个 SQL 查询

qryFolders.Close;
qryFolders.SQL.Clear; // Not really needed as I am assigning the Text next - but :)
qryFolders.SQL.Text:=
'SELECT Folder FROM tblFolders WHERE UPPER(Account)="FIRSTTRADER"'
qryFolders.ExecSQL;
tblFolders.Refresh;

在我的应用程序中,没有任何 react ,我仍然可以看到完整的文件夹列表。

在 SQL-Expert 桌面 那条线工作正常并仅显示与该帐户关联的两个文件夹。在该应用程序中,它不断显示文件夹的完整列表

如果我单步执行 OnCellClick 它会显示正确的文本等。

我哪里错了?

谢谢

最佳答案

如果要显示一个Master-Detail(Account as Master,Folder as Detail),那么我们从这里开始:

// connecting the grids
AccountsDataSource.DataSet := tblAccounts;
AccountsGrid.DataSource := AccountsDataSource;

FoldersDataSource := tblFolders;
FoldersGrid.DataSource := FoldersDataSource;

// retrieving the data
tblAccounts.Open;
tblFolders.Open;

这应该反射(reflect)你已经拥有的东西。现在让我们进入主从细节。

很明显,所有查询和表组件都有一个有效的连接集,所以我将忽略它。

首先确定,查询未激活
qryFolders.Active := False;

拥有一个带有查询作为细节的主细节,我们必须设置 MasterSource
qryFolders.MasterSource := AccountsDataSource;

之后,我们可以使用参数设置查询以链接到 MasterSource 中的字段。链接到字段 Account在 MasterSource 中使用 :Account 完成
qryFolders.SQL.Text := 
'SELECT Folders FROM tblFolders WHERE UPPER( Account ) = :Account';

现在,我们准备好检索数据了
qryFolders.Open;

在此之前,我们不会看到 FoldersGrid 的任何变化。 ,因为我们没有告诉任何人这样做。现在让我们使用它
FoldersDataSource.DataSet := qryFolders;

在您的方法中,您没有 Open查询并且您没有将查询链接到网格。

另一种选择是拥有一个没有单独查询的主从细节。
(似乎有一些代码重构,所以我想这是一个工作示例)
tblFolders.MasterSource := AccountsDataSource;
tblFolders.MasterFields := 'Account';
tblFolders.LinkedFields := 'Account';

引用:
  • SourceForge ZTestMasterDetail.pas (见第 181 行)
  • SourceForge ZDataset.pas
  • 关于sql - 使用多个 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552718/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com