Удаление Выделенной Записи Из Бд

Тема в разделе "Delphi - Базы данных", создана пользователем FLYer, 23 ноя 2011.

  1. FLYer

    FLYer Гость

    У меня есть БД с 12 полями. Одно из них отображается в DBLookUpListBox, остальные показаны в DBEdit. Кликая на определенную запись в лист боксе, в эдитах показываются соответствующие.
    Проблема: мне нужно удалить выделенную в лист боксе запись (то есть в лист боксе выделяется одно поле а удаляется вся запись в БД).
    Пыталась делать запросом и через параметр. Удаляются либо все записи БД либо выдается ошибка параметра. Например: "Поле name не имеет значения по умолчанию"

    Вот мой запрос:
    Код (Delphi):
    with DataModule2.ADOQuery3 do
    begin
    Sql.Text:='DELETE FROM [Контакты] WHERE name='+DBLookUpListBox1.SelectedItem;
    ExecSQL;
    end;
    здесь name - ранее созданный в квери параметр, соответсвующий полю Имя в лист боксе

    Вобщем, буду рада любому совету, так как не знаю с какой стороны и как правильно подойти к решению данной задачи. Заранее спасибо
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Если DBLookUpListBox привязан в ADOTable например или есть возможность привязать к adoTable. достаточно вызвать ADOTable.Delete. Естественно если у вас BDE компоненты логика таже.

    Тут совсем непонятно. Если name это параметр то код должен быть примерно такой(писал по памяти за синтаксис не уверен)
    Код (Delphi):
    with DataModule2.ADOQuery3 do
    begin
    paramByName('name').asString=DBLookUpListBox1.SelectedItem;
    Sql.Text:='DELETE FROM [Контакты] WHERE name=:name;
    ExecSQL;
    end;
    Но в вашем случае достаточно указать название атрибута(колонки), а не параметра.
     
  3. FLYer

    FLYer Гость

    Огромное спасибо!!! Сработало с ADOTable.Delete :)
     
Загрузка...

Поделиться этой страницей