gpt4 book ai didi

delphi - 如何使用编辑而不是 DBNavigator 将数据添加到 Delphi 中的数据库?

转载 作者:行者123 更新时间:2023-12-03 18:35:40 26 4
gpt4 key购买 nike

我的界面非常基础。它只包括用户将数据输入数据库的编辑,当他们单击按钮时,我希望它将数据添加到我的数据库中。

最佳答案

你可以很容易地做到这一点。

  • 转至Data Controls组件面板的选项卡。
  • 选择 TDBEdit并将其放在与 DBNavigator 相同的表单上。 IDE 会将其命名为 DBEdit1
  • 设置Datasource您的 DBEdit1 的属性(property)到与您的 DBNavigator 相同的数据源。
  • 设置DataField DBEdit1 的属性(property)到数据集中字段的名称。
  • 编译并运行。

  • 就是这样。将 DBNavigator 留在表单上,​​因为您会发现当您更改 DBEdit1 的内容时,它的 SaveCancel按钮自动启用,让您保存或取消更改。

    此外,您会发现,如果单击 DBNavigator 的“+”按钮,开始将新记录插入表中,然后您可以将新记录的字段值键入 DBEdits。

    不要使用普通的非 DB 感知 TEdit组件和动态创建的连接 TEdits 的 Sql 语句的内容与其他 Sql 的内容如在此处短暂出现的其他答案中建议的,现在似乎已被删除 - 这是浪费时间,但更重要的是使您的应用容易受到 的攻击Sql 注入(inject) - 见 https://en.wikipedia.org/wiki/SQL_injection .通过向服务器发送未经验证的 Sql 语句,其中包括用户在 TEdit 中键入的内容。 ,您实际上为用户提供了在 TEdit 中键入附加 Sql 语句的机会。那是 正是 Sql 注入(inject)是如何发生的。另一方面,当您使用 TDBEdits ,更新数据库记录的Sql由Delphi的 TDataSet自动生成以某种方式不为 Sql 注入(inject)提供类似机会的框架。

    如果出于某种原因您绝对必须生成自己的 Sql Update 语句,以最大限度地降低 Sql 注入(inject)的风险,请确保使用参数化的 Update 语句,即将更改的字段值指定为 TDataSet 中的参数值-后代的 Parameters对象,而不是在 Update Sql 本身中。参数化更新语句的示例可能是:
    Update MyTable set FieldA =:FieldA, FieldB=:FieldB where RowID =:RowID

    其中 :FieldA、:FieldB 和 :RowID 是参数。

    关于delphi - 如何使用编辑而不是 DBNavigator 将数据添加到 Delphi 中的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33593674/

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