【问题标题】:need help on insert new contact into access mdb from delphi需要帮助从 delphi 将新联系人插入访问 mdb
【发布时间】:2009-11-30 15:22:15
【问题描述】:

我想编写一个应用程序,它是一个通讯簿并使用访问 .mdb 文件。我知道如何将新联系人插入数据库,但我不知道如何编辑联系人。我把我的测试项目放在这里AddressBookTest.zip。欢迎任何帮助

【问题讨论】:

    标签: sql delphi ms-access


    【解决方案1】:

    您的 INSERT 代码必须这样做:

          qryAux.SQL.Text:='INSERT INTO tblContacts(FirstName, LastName) VALUES( ' +
            QuotedStr(frmEd.edFirstName.Text) + ',' +
            QuotedStr(frmEd.edLastName.Text) + ')';
    

    这里插入两个值是正确的。

    在编辑模式下,要从数据库中检索值,您必须执行 Open,而不是 ExecSQL。 并且在打开之后,你必须测试是否找到了记录。 请参阅此代码:

       qryAux.Open;
    
       // Finded?
       if not (qryAux.Eof) then begin
         frmEd.edFirstName.Text:=qryAux.FieldByName('FirstName').AsString;
         frmEd.edLastName.Text:=qryAux.FieldByName('LastName').AsString;
       end;
    

    问候。


    内夫塔利 - Germán Estévez-

    【讨论】:

    • 注意:另外,您可以在 aryAux 查询中使用参数;使用参数不需要使用 QuotedStr。 -> qryAux.SQL.Text:='INSERT INTO tblContacts(FirstName, LastName) VALUES(:fist, :last)';
    • 您不需要在 INSERT 语句中提供字段名称,只要您按顺序为所有字段提供值。
    【解决方案2】:

    您似乎使用的是 SQL 命令而不是编辑/插入/发布。因此,您需要的是 UPDATE 命令:

    UPDATE tblContacts
    SET FirstName = '''+frmEd.edFirstName.Text+''''
    WHERE ID=10
    

    要添加多个值,请用逗号分隔,例如。

    SET FirstName = 'John', LastName = 'Smith'
    

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多