![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Всем доброго. С таким я еще не сталкивался, посему открываю тему.
Есть таблица, в которой нет уникальных ключей. Я запросом выбираю из нее некий набор. После чего я хочу удалить некую строку из таблицы, входящую в набор, полученный запросом. Если нет уникальных ключей я могу просто перечислить в запросе поля в условии, но мне это не нравится, тем паче что по заданию я должен удалить только конкретную по номеру строку. У меня в таблице могут быть много раз подряд одно и то же написанное, но удалить нужно именно одну из них. Предусмотренны ли в SQL запросах указания удалить запись с таким-то физическим номером в базе? Речь идет о FireBird 1.5 P.S. Знаю что там есть rdb$db_key, но что-то не понимаю как его использовать, с битовыми масками не работал до этого, да и говорят что он переменчив... P.P.S. структуру БД менять запрещено
I'm learning to live...
|
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
сразу скажу, я не знаю, как решать проблему.
Но Вы, надеюсь, понимаете, откуда "ноги растут" у этой проблемы? SQL предназначен для обработки данных отвечающих правилам реляционных БД. В данном случае таблица имеет "кривую" структуру. Цитата:
Поэтому, если не удастся построить условие WHERE поле1=xxx and поле2=yyy and ....полеN = zzzz так, чтобы ему отвечала только одна нужная запись - значит задача не решается через SQL запрос... p.s. понимаю, что Вы оказались перед лицом данной проблемы не по своей вине.. Сочувствую... ![]() |
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Топорный способ - удалить всю группу из 5 записей, и тут же вставить 4 таких же точно записи. Кстати с корректировкой этих запией будут аналогичные проблемы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Только бока вот в чем: прога некого писаки считает первичным ключем... физический нумбер записи ![]() То самое RecNo. Представляете, кто-то решил от него отталкиваться, исходя из того что записи по идее удаляться не должны или если удаляются то все - очистка таблицы. Но прошли времена, когда этого хватало, перспективы потребовали более мобильного телодвижения программы и тут прилетела птичка обломинго ![]() Меня это не устраивает, медлено дюже, я по своему пишу работу с базой (это чисто для меня, они пусть тормозят сколько хотят) в свое удобство. Ну а ту... Даже не знаю как поступить... И это ведь только одна таблица, в БД их сотни, с разным набором полей... Как-то криво натыкивать в запрос проверку по всем полям, которая не факт что поможет. P.S. А Table как работает? неужели даже при фильтрации запрашивает весь набор данных?
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
С Table практически не работаю, но судя по тому, что есть событие OnFilterRecord, то фильтрация на клиенте
ADD Посмотрел на sql.ru rdb$db_key - вроде и возможно в рамках одной транзакции им пользоваться для удаления (так, инфа к размышлению, с FireBird мало знаком)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 16.08.2011 в 21:11. |
![]() |
![]() |
![]() |
#6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление строки | женя2010 | Microsoft Office Excel | 9 | 23.04.2010 16:23 |
Работа с книгой имеющей общий доступ в Excel(2003,2007) | Fezdipekla | Microsoft Office Excel | 1 | 12.03.2010 10:35 |
Удаление элементов строки s2 из строки s1 | Ueshua | Общие вопросы C/C++ | 4 | 20.12.2009 13:06 |
Удаление из строки | program123 | Помощь студентам | 4 | 21.05.2009 12:52 |
Как делают уникальный идентификатор строки в БД? | sergey113 | Помощь студентам | 3 | 05.08.2008 17:48 |