Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 498

/ вопрос открыт /

Доброго времени.

Подскажите какое условие ставить триггеру на вставку, если на одном столбце используемой таблицы стоит ограничение unique, и имеются повторы. Таблица заливается программно из файла, убрать повторы нецелесообразно, с использованием ограничения программа вылетает на первом повторяющемся значении с ошибкой ...ограничение unique...не могу вставить повторяющийся ключ.

Приложение:
  1. create trigger trg1
  2. on table1
  3. for insert
  4. as
  5.  
  6. rollback transaction
  7. go
  8.  


Crash_net Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Crash_net (статус: Посетитель)
Вопрос отправлен: 11 августа 2010, 16:09
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 34; последнее сообщение — 13 сентября 2010, 15:44; участников в обсуждении: 3.

Страницы: [« Предыдущая] [1] [2]

Crash_net

Crash_net (статус: Посетитель), 7 сентября 2010, 11:34 [#21]:

написал *= все работет
Crash_net

Crash_net (статус: Посетитель), 7 сентября 2010, 13:28 [#22]:

а есть вариант поиска слова по всему представлению (таблице) не используя cursor ?
Вадим К

Вадим К (статус: Академик), 7 сентября 2010, 14:09 [#23]:

добавить ещё один where. Если нужно искать по части слова - тогда like.
Галочка "подтверждения прочтения" - вселенское зло.
Crash_net

Crash_net (статус: Посетитель), 8 сентября 2010, 01:45 [#24]:

написал все поля через AND, мэнэджере работает, но когда такой же запрос отправляю из Delphi ищет только по первому указанному полю, в чем проблема?
Вадим К

Вадим К (статус: Академик), 8 сентября 2010, 10:46 [#25]:

проблема в 17 строке второго файла.
то есть - код нужно показывать! Кто знает, что именно там написано.
Галочка "подтверждения прочтения" - вселенское зло.
Crash_net

Crash_net (статус: Посетитель), 8 сентября 2010, 14:21 [#26]:

примерно так:
select * from Table_x where (field1 = :param1)
or (field2 = :param1)
or ...
(так полей 10)

...param1.Value = Edit1.Text
try
sql.open;
except
end

в едите пишу %[искомое слово]%
Вадим К

Вадим К (статус: Академик), 8 сентября 2010, 14:38 [#27]:

рекомендую написать запрос самостоятельно, без параметров. Мне почему то кажется, что параметр раскрывается только один раз. Проверить можно так - в одно с полей записать значение ":param1" - если сработает для этого поля - значит моя гипотеза верна.

Цитата (Crash_net):

(так полей 10)

мне страшно смотреть на этот дизайн. это плохой симптом, если нужно так делать.
Галочка "подтверждения прочтения" - вселенское зло.
Crash_net

Crash_net (статус: Посетитель), 8 сентября 2010, 16:05 [#28]:

ставил значение :param1 в другие поля (не field1) возвращает пустую строку, т.е. как я понимаю гипотеза Ваша верна.
Без параметра не вариант, ...наверное придется курить мануал (declare cursor) нам поможет))
Вадим К

Вадим К (статус: Академик), 8 сентября 2010, 16:08 [#29]:

я даже не знаю, как declare cursor тут поможет.
Я лично всегда обходился без параметров. составлял запрос ручками - так есть полный контроль над запросом.
Галочка "подтверждения прочтения" - вселенское зло.
Crash_net

Crash_net (статус: Посетитель), 10 сентября 2010, 01:27 [#30]:

я не знаю как составить запрос на поиск нужного мне слова в представлении из приложения
Вадим К

Вадим К (статус: Академик), 10 сентября 2010, 10:33 [#31]:

с параметром умеем, а без - нет?
'select * from Table_x where (field1 = "'+edit1.text+'") or (field2 = "'+edit1.text+'")
or ...
(так полей 10)
обратите внимание - там одинарная и двойная кавычка.
Галочка "подтверждения прочтения" - вселенское зло.
Crash_net

Crash_net (статус: Посетитель), 13 сентября 2010, 15:16 [#32]:

да так работает, только приходится пиать ('Select...' + '''' + edit1.text + ''''+'...')
Crash_net

Crash_net (статус: Посетитель), 13 сентября 2010, 15:38 [#33]:

Мой очередной ворпос кажется будет немного сложнее, тем интереснее...
Извиняюсь за длину.
Есть две таблицы tbl1(n полей) и tbl2(m полей). Первое поле tbl2 name1 составляет набор слов (типа: ПВМ/Книга/Лопата и т.д.).
В tbl1 в некотором поле1 содержутся записи типа (Модернизированный ПВМ бла бла бла/ Книга о здоровом питании....).
Необходимо соединить таблицы tbl1 и tbl2 следующим образом: оставить все n значения tbl1 и присоединить m-1 значение tbl2 (т.е. кроме поля name1) причем соединять поля
при нахождении слова из tbl2.name1 в tbl1.поле1.
Crash_net

Crash_net (статус: Посетитель), 13 сентября 2010, 15:44 [#34]:

Пример

tbl1
------------------------------
| Лопата стальная|..|...|..|n|

tbl2
-----------------------------------------
| Лопата | Ручной инструмент | 111 | 222 |

Итог:
----------------------------------------------------------------------
| Лопата стальная|..|...|..| n | Ручной инструмент | 111 | 222 |

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 20:36
Выполнено за 0.02 сек.