Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизНе получается удалить строку из таблицы Найти похожие ветки
← →
Дмитрий (2010-05-15 17:13) [0]Добрый день,bзвеняюсь что отвлекаю, но у меня не большой вопрос. Есть аксесовская база данных и у одной из ее таблиц мне надо программно удалять строку. Все строки таблици хронятся в combobox-e и я с помощью sql-запроса пытаюсь удалять, но выдает ошибку:" Параметр Гост не имеет значения по умолчанию", Гост- название таблицы. Листинг:
DataModule2.ADOQuery1.Active:=false;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add("DELETE");
DataModule2.ADOQuery1.SQL.Add("FROM (select* from Спецификация) Спецификация");
DataModule2.ADOQuery1.SQL.Add("WHERE Гост= """+ComboBox1.Items.Strings[ComboBox1.ItemIndex]+"""");
DataModule2.ADOQuery1.Active:=true;
Помогите пожалуст, а то всю голову сломал))
← →
YurikGL © (2010-05-15 17:16) [1]Для начала
1) в базе переименуй все на английский
2) Если правильно помню, русские названия в запросах в Access нужно в квадратные скобки брать.
3) ("FROM (select* from Спецификация) Спецификация"); что этим хотел сказать?
4) Предварительно отрабатывай запросы в самом Accesse
← →
Palladin © (2010-05-15 17:27) [2]поправка
2) в кв. скобки брать все названия объектов которые содержат, несовместимые с SQL92, символы (для mssql, jet)
4) глупость хотел сказать ) и получилось
← →
YurikGL © (2010-05-15 17:30) [3]
> 4) глупость хотел сказать ) и получилось
Не понял?
Имелось в виду, что тексты запросов проще отрабатывать в Access.
← →
Palladin © (2010-05-15 17:31) [4]обшибся нумбером
"4) глупость хотел сказать ) и получилось"
читать как
"3) глупость хотел сказать ) и получилось"
← →
Германн © (2010-05-15 17:54) [5]
> DataModule2.ADOQuery1.Active:=true;
А это вообще бред.
← →
Anatoly Podgoretsky © (2010-05-15 18:08) [6]> Дмитрий (15.05.2010 17:13:00) [0]
Используй АdoCommand
Используй парамеры
Чему равен DataModule2.ADOQuery1.SQL.Text?
← →
Anatoly Podgoretsky © (2010-05-15 18:11) [7]
> А это вообще бред.
А что здесь не бред? Вроде ничего.
← →
turbouser © (2010-05-15 18:23) [8]
> Германн © (15.05.10 17:54) [5]
>
>
> > DataModule2.ADOQuery1.Active:=true;
>
> А это вообще бред.
Это с какого перепугу бред?
Вполне нормально. В сеттере на Active тот же Open делается, на сколько помню.
← →
turbouser © (2010-05-15 18:24) [9]А :) там delete :)
← →
Smile (2010-05-15 18:26) [10]> Германн © (15.05.10 17:54) [5]
А, собственно, что "криминального" ты нашел вDataModule2.ADOQuery1.Active:=true;
ну и тем более "бредового"
:)
Интерес, действительно, представляет уточнение от
Anatoly Podgoretsky © (15.05.10 18:08) [6], а именно
Чему равен DataModule2.ADOQuery1.SQL.Text?
← →
turbouser © (2010-05-15 18:28) [11]
> Smile (15.05.10 18:26) [10]
delete же. Exec нужно.
← →
Smile (2010-05-15 18:34) [12]в данном случае, конечно же, но мне показалось, что Германн просто органически не принимает такую конструкцию
:)
пардон за вальяжность, и прошу извинения
:(
← →
Германн © (2010-05-15 18:39) [13]
> но мне показалось
Когда кажется, креститься надо!
Народная мудрость. :)
← →
Smile (2010-05-15 18:42) [14]возразить нечем, согласен
:)
← →
Anatoly Podgoretsky © (2010-05-15 19:46) [15]> Smile (15.05.2010 18:42:14) [14]
Тут возражай не возражай, а все равно переписать все нафиг.
← →
Дмитрий (2010-05-15 20:18) [16]ответов много ноя так ни че и не понял))). Не много подправил теперь не ругается но и не удаляет.
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("DELETE*");
ADOQuery1.SQL.Add("FROM ТаблицаГост");
ADOQuery1.SQL.Add("WHERE Название=:poisk");
ADOQuery1.Parameters.ParamByName("poisk").Value:=ComboBox1.items.Strings[ComboBo x1.ItemIndex];
Не могу понять что не так. Объясните пожалуста и если можно на примере.
Заранее благодарен.
← →
turbouser © (2010-05-15 20:20) [17]
> ComboBox1.items.Strings[ComboBo x1.ItemIndex];
Жжуть..
ComboBox1.items[ComboBox1.ItemIndex];
Но всеравно Жжуть..
← →
Плохиш © (2010-05-15 20:22) [18]DELETE
FROM (select* from Спецификация) Спецификация
WHERE Гост= "чё-то"
> Гост- название таблицы
Вот это полёт фантазии. Это я уважаю
Отсыпте грибочков.
← →
Плохиш © (2010-05-15 20:23) [19]
> Дмитрий (15.05.10 20:18) [16]
Что такое звёздочка в вашем сверхудивительном запросе?
← →
Дмитрий (2010-05-15 20:24) [20]Опечатка))
← →
Плохиш © (2010-05-15 20:25) [21]
> Дмитрий (15.05.10 20:24) [20]
>
> Опечатка))
Ну так исправляйте и другии опечатки в вашем суперкоде.
← →
Дмитрий (2010-05-15 20:27) [22]А где конкретнее они присутствуют?
← →
Дмитрий (2010-05-15 20:28) [23]И если не затруднит вас Плохиш, покажите на примере как вы это реализовываете, если это конечно не затруднит?
← →
turbouser © (2010-05-15 20:33) [24]лови..
with ADOQuery1 do
begin
SQL.Text:="DELETE FROM ТаблицаГост WHERE Название=:poisk");
Parameters.ParamByName("poisk").Value:=ComboBox1.items[ComboBox1.ItemIndex];
ExecSQL;
end
← →
turbouser © (2010-05-15 20:34) [25]еще бы try except finally, но это домашнее задание.
← →
Плохиш © (2010-05-15 20:36) [26]
> turbouser © (15.05.10 20:33) [24]
Подаёшь немощным?
← →
Дмитрий (2010-05-15 20:38) [27]Большое спасибо. Все заработало)))
← →
Anatoly Podgoretsky © (2010-05-15 21:09) [28]
> Не могу понять что не так.
Отсутствует вызов, на удаление.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.058 c