【问题标题】:Creating tables and displaying without RAD components [closed]创建表格并在没有 RAD 组件的情况下显示 [关闭]
【发布时间】:2013-03-01 00:15:00
【问题描述】:

我的工作给了我以下挑战……我还是个菜鸟,我会尽可能快地学习,但我有这个曲线球,但我无法完全理解它。

如果不是很麻烦...除了以下例外,我该如何创建、修改和显示表格?

RAD 出来了。没有任何类型的数据集、查询或表组件。例如,不要使用:DataSource、DataSet、DBGrid、DBText、DBEdit 等。可以接受 TADOConnection 之类的连接组件。

【问题讨论】:

  • 没有 RAD 组件?您的意思是没有数据感知组件吗?那就是名称中包含DB 并具有DataSource 属性的组件?例如,您可以使用 TEdit 代替 TDBEdit 吗?如果您不能使用 TDataSet 后代,例如 TADOQuery,那么 TADOConnection 几乎没有用,我真的不明白练习的重点。如果他们只是简单地排除所有数据感知控件,那么他们基本上是在要求您将视觉呈现与数据访问分离。查找/google 以获取有关分离应用程序层的信息。
  • 仅需要排除以下内容... DataSource、DataSet、DBGrid、DBText、DBEdit。其他都可以用
  • 听起来有人不知道他在说什么。虽然其他一些在某些情况下确实有意义,但 TDataSet 和 TDataSource(因为它们用于主从和查找目的)不属于该组。如果您不能使用 TDataSet,那么您最好使用其他工具或退出该工作。
  • @UweRaabe:您可以不用 TDataSource,它只需要将数据感知控件连接到 TDataset 后代。但是我确实同意您需要某种 TDataSet 后代,否则您将真的从事徒劳的练习。 Master Detail 也可以在没有数据源的情况下实现。您只需要自己进行同步即可
  • @MarjanVenema,TDataSource 还用于将明细表连接到其主表并将查找字段连接到其查找源。

标签: database delphi tquery


【解决方案1】:

您可以使用ADOConnection.Execute 方法从查询中获取数据,然后以某种方式进行迭代和显示,例如使用 TStringGrid 或著名的 TVirtualTreeView

【讨论】:

  • 我已经创建了数据库,但是我需要创建 2 个表并将它们相互链接,“基本电话簿”一个表保存客户,一个保存电话号码,这就是我卡住的地方,不知道如何在没有 DBGrid 和那些“简单”工具的情况下向该数据库添加条目
  • 您可以INSERTUPDATEDELETE 任何表格,而无需数据敏感控件。您也可以对 DML 使用 ADOConnection.Execute 方法。
【解决方案2】:

如果你可以使用 adoconnection,你大概可以使用 ADOQuery 组件。

然后你会得到这样的东西:

sl.Clear;
ADOQuery.Close;
try
  ADOQuery.SQL.Text:='SELECT names FROM phonebook';
  ADOQuery.Open;
  While not ADOQuery.Eof do begin
    sl.Add(AdoQuery.FieldByName('names').AsString);
    ADOQuery.Next;
  end;
finally
  ADOQuery.Close;
end;

或:

ADOQuery.Close;
try
  ADOQuery.SQL.Text := 'INSERT INTO phonebook (name,number)VALUES'+QuotedStr(NameString) +',' + QuotedStr(numberstring) +')'
  ADOQuery.ExecSQL;
finally
  ADOQuery.Close;
end;

(这里使用非参数化查询,使用参数化查询当然更好。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-21
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2023-03-30
    • 2017-05-31
    相关资源
    最近更新 更多