【问题标题】:Delphi Dataset not in edit or insert modeDelphi 数据集未处于编辑或插入模式
【发布时间】:2017-10-28 14:33:48
【问题描述】:

我试图搜索这个,但没有找到任何对我有帮助的东西。我正在尝试一个学校项目,我需要将记录添加到 Access 数据库,但我收到错误“数据集未处于编辑或插入模式。

sName := ledName.Text;
sUName := ledUserName.Text;
sPass := ledPassword.Text;
sEmail := ledEmail.Text;
sCell := ledPhone.Text;

dmUsers.tblUsers.ReadOnly := False;

dmUsers.tblUsers.Open;
dmUsers.tblUsers.Insert;

dmUsers.tblUsers.Last;
dmUsers.tblUsers['UserName'] := sUName;
dmUsers.tblUsers['Password'] := sPass;
dmUsers.tblUsers['Email'] := sEmail;
dmUsers.tblUsers['Cell Number'] := sCell;
dmUsers.tblUsers['Actual Name'] := sName;
dmUsers.tblUsers['Balance'] := 0;
dmUsers.tblUsers['Points'] := 0;

dmUsers.tblUsers['Present'] := False;

dmUsers.tblUsers.Post;

我不知道我做错了什么。任何帮助将不胜感激。

【问题讨论】:

  • 在编辑数据集之前致电Edit。然后只需拨打Append(或Insert,就像你一样)并删除你的Last电话。

标签: delphi


【解决方案1】:

如果您在数据集上调用可以更改活动记录的方法(如FirstLastNextLocate),则数据集将调用CheckBrowseMode,如果修改,Post 将更改或Cancel 未修改的新记录。结果是数据集位于dsBrowse,导致它不接受编辑。

因此,将您的代码更改为如下所示。我将使用Append,因为您的Last 调用表明您希望在数据集末尾添加新记录。

sName := ledName.Text;
sUName := ledUserName.Text;
sPass := ledPassword.Text;
sEmail := ledEmail.Text;
sCell := ledPhone.Text;

dmUsers.tblUsers.ReadOnly := False;

dmUsers.tblUsers.Open;

dmUsers.tblUsers.Append;

dmUsers.tblUsers['UserName'] := sUName;
dmUsers.tblUsers['Password'] := sPass;
dmUsers.tblUsers['Email'] := sEmail;
dmUsers.tblUsers['Cell Number'] := sCell;
dmUsers.tblUsers['Actual Name'] := sName;
dmUsers.tblUsers['Balance'] := 0;
dmUsers.tblUsers['Points'] := 0;

dmUsers.tblUsers['Present'] := False;

dmUsers.tblUsers.Post;

【讨论】:

    猜你喜欢
    • 2018-06-27
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2017-05-25
    相关资源
    最近更新 更多