Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.063 c
15-1268825050
TUser
2010-03-17 14:24
2010.08.27
Сканируем в принтер!


11-1218532817
Jon
2008-08-12 13:20
2010.08.27
Position message box


2-1273162517
Grumd
2010-05-06 20:15
2010.08.27
Поиск строки в переменной типа string


15-1273613051
bd
2010-05-12 01:24
2010.08.27
usb hdd перестал определяться


2-1268698888
DROWSY
2010-03-16 03:21
2010.08.27
Как обновить параметризованный набор,





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский