|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.09.2011, 11:31 | #1 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Удаление всех строк из БД по значению из колонки
Добрый день! Задача такова. Выбирается колонка, в ней выбирается любое значение и нужно удалить из БД все строки, в которых встречается выбранное значение из указанной колонки. Список колонок DBGridEh`а грузится в RibbonComboBox1, список всех значений выбранной в RibbonComboBox1 колонки грузится в RibbonComboBox2. Не могу понять почему появляется ошибка: "File '*.dbf' dos not exists". Вот код мой:
Код:
З.Ы. Кстати, почему-то не очищается RibbonComboBox2 при повторном выборе колонки из RibbonComboBox1.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
17.09.2011, 11:56 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Звездочка (*) после delete зачем? На всякий случай - что в Form1.sStatusBar1.Panels[1].Text?
add Еще возможный источник будущих ошибок - наличие в de символа "
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 17.09.2011 в 12:03. |
17.09.2011, 12:07 | #3 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Аватар, + тебе, спасибо. Да, дело было в звездочке . В Form1.sStatusBar1.Panels[1].Text имя файла (таблицы) БД, которую выбирают в процессе работы с программой. А с кавычками будет работать если в de будет передаваться число, а не строка? Для строки работает.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
17.09.2011, 12:25 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
С кавычками в условии имелось ввиду следующее:
...where pole1="nhf"kz" даст ошибку синтаксиса Если такая ситуация возможно, то каждую внутреннюю кавычку нужно удваивать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
17.09.2011, 12:56 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
угу. А если в de написать например, так: Код:
то получим классический SQL Injection - удалятся ВСЕ записи из таблицы! |
|
18.09.2011, 07:04 | #6 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
А как тогда сделать если у меня в колонке будет вместо строки число какое-то?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
18.09.2011, 11:23 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если поле цифровое там кавычки 100 лет не нужны:
...WHERE Pole1=5
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
18.09.2011, 11:40 | #8 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
А как тогда можно определить число или слово передается в de?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
18.09.2011, 12:24 | #9 |
Форумчанин
Регистрация: 04.10.2007
Сообщений: 106
|
Это определяется при разработке таблицы - типом данных использованным в данном поле.
В принципе в текстовом поле может храниться например значение "80", но это лишь два СИМВОЛА "8" и "0" и обрабатывается SQL-ем как текст. Обычно это известно при проектировании приложения, но если так уж нужен механизм свободно работающий с произвольно выбранными полями таблицы то можно использовать что-то вроде: Код:
Сделал, с значительными ограничениями, без учета вычисляемых. Закончил, потом понял что нужны изменения в структуре базы, поправлять генератор запроса было влом, так и забросил.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление всех строк из RichEdit, начиная с определённой строки | ondar | Компоненты Delphi | 5 | 07.06.2011 06:48 |
Удаление строки по указанному значению в СтрингГриде | DgaDga | Общие вопросы Delphi | 2 | 02.06.2011 08:53 |
Удаление строк в массиве по значению в строке | ZanderBlack1 | Microsoft Office Excel | 1 | 19.01.2011 16:11 |
Удаление строки по значению | FormAlDeGid | Microsoft Office Excel | 15 | 18.11.2009 09:38 |
Выборка строк из таблицы по значению TDBLookupComboBox | Gringo | БД в Delphi | 4 | 28.10.2008 05:45 |