|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
Добрый день. Есть 2 справочника с одинаковым набором свойств Spr1 и Spr2. При этом Spr1 управляется извне через ODBC. Под управлением понимается полная чистка справочника и добавление новых записей. Нужно сделать такую штуку. В момент добавления новой записи в Spr1 нужно поискать такую запись в Spr2 и если не нашли, то добавить такую же запись в Spr2. Понятно, когда количество свойств мало, то можно добавлять запись так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Но у меня таких свойств больше 50. Можно ли как-то проще сделать заполнение свойств Spr2 из Spr1? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 15:07 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
как вариант, во второй таблице, сделать нужные поля уникальными, и в триггере перовой таблицы просто вставлять новую строку во вторую игнорируя ошибки уникальности. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 15:10 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
rongoНо у меня таких свойств больше 50. Можно ли как-то проще сделать заполнение свойств Spr2 из Spr1? Можно написать программу (или метод спец. класса), которая за вас будет генерировать код такого метода. Но обычно у свойств (и объекта в целом) есть особенности... Во втором классе должны быть методы, которые выполняют логику: - проверки наличия - копирования из одного объекта в другой - копирование с проверкой ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 15:47 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
DAiMorкак вариант, во второй таблице, сделать нужные поля уникальными, и в триггере перовой таблицы просто вставлять новую строку во вторую игнорируя ошибки уникальности. Как-то игнорировать ошибке не хочется... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 15:51 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
doublefintrongoНо у меня таких свойств больше 50. Можно ли как-то проще сделать заполнение свойств Spr2 из Spr1? Можно написать программу (или метод спец. класса), которая за вас будет генерировать код такого метода. Но обычно у свойств (и объекта в целом) есть особенности... Во втором классе должны быть методы, которые выполняют логику: - проверки наличия - копирования из одного объекта в другой - копирование с проверкой Судя по ответу - это что-то страшное... Может как-то проще можно? При компиляции тригера {PROP1} меняются на %d(номер свойства). Может как то это можно использовать... Типа повторить логику компилятора... Только не понятно откуда взять номер свойства... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2013, 15:58 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
%ConstructClone не подойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2013, 01:42 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
rongo , Как насчет влоб через глобали хранения? Код: c 1. 2. 3. 4. 5. 6. 7. 8. 9.
P.S. Вот почему всех кто юзает Cache' посещают идеи реализовать что-то уродское.... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 05:29 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
Правильнее будет даже Merge ^Src2D(Id) = ^Src1D(Id) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 05:32 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
sigmovВот почему всех кто юзает Cache' посещают идеи реализовать что-то уродское.... Не всех. Отчасти это связано с тем, что можно вообще придумывать любые NoSQL хранения? Чего напроч лишены другие разработчики с "табличным" хранением данных... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 10:25 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
Вообще-то ТС не ставил задачу обновления двух идентичных справочников, а лишь справочников "с одинаковым набором свойств Spr1 и Spr2". Spr1 при такой постановке может быть подмножеством Spr2, значит, ID могут и не совпадать. Тогда предложенный способ вставки с игнорированием лишь одного вида ошибок представляется самым практичным. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 11:26 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
krvsasigmovВот почему всех кто юзает Cache' посещают идеи реализовать что-то уродское.... Не всех. Отчасти это связано с тем, что можно вообще придумывать любые NoSQL хранения? Чего напроч лишены другие разработчики с "табличным" хранением данных... Вообще-то, нормальные разработчики сами выбирают СУБД под задачу. Не подходит SQL-БД для хранения сессий - возьмёт Redis. Нужно хранить JSON-документы с поиском по полям - MongoDB или CouchDB. XML-документы - Sedna. Нужно хранить объекты - Cache' или реляционка с ORM. Нужны разнообразные отчёты - опять-таки "табличное" хранение данных. Хреново, когда одну и ту же СУБД пытаются пихать везде, пытаясь придумать любые NoSQL, SQL и прочие хранения. И, если приходится реализовывать что-то уродское на Cache', наверное стоит задуматься, нафига каше вообще здесь нужна? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 14:15 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
не рубящий в кашеВообще-то, нормальные разработчики сами выбирают СУБД под задачу. Заблуждение. Часто (мягко говоря) у заказчика уже есть СХОД (СУБД - это вряд ли), и задачу нужно решить именно в ней. И уж совсем невероятно, чтобы заказчик вкладывал средства в разработку СУБД)) не рубящий в кашеНе подходит SQL-БД для хранения сессий - возьмёт Redis. Нужно хранить JSON-документы с поиском по полям - MongoDB или CouchDB. XML-документы - Sedna. Нужно хранить объекты - Cache' или реляционка с ORM. Нужны разнообразные отчёты - опять-таки "табличное" хранение данных. Заблуждение. Разработчику не могут быть нужны какие-либо предопределенные структуры данных. Они могут быть прописаны в ТЗ - это бывает. не рубящий в кашеХреново, когда одну и ту же СУБД пытаются пихать везде, пытаясь придумать любые NoSQL, SQL и прочие хранения. Может быть. В IS этого и не делают. Хранят банально в базовой архитектуре)) не рубящий в кашеИ, если приходится реализовывать что-то уродское на Cache', наверное стоит задуматься, нафига каше вообще здесь нужна? Поскольку в Cache имеется уникальная базовая технология для решения информационно-логических задач, то есть, для разработки приложений БД без использования СУБД, то здесь Вы правы - в философском смысле, никакие другие системы, конечно, не нужны. Но, с естественными монополиями нужно как-то бороться))... А тема, наряду с http://www.sql.ru/forum/actualthread.aspx?tid=1012388 полезная)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 17:49 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
не рубящий в кашеВообще-то, нормальные разработчики сами выбирают СУБД под задачу. Только где их взять? не рубящий в кашеИ, если приходится реализовывать что-то уродское на Cache', наверное стоит задуматься, нафига каше вообще здесь нужна? Или перестать реализовывать это уродство... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 20:09 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
Бредятинане рубящий в кашеВообще-то, нормальные разработчики сами выбирают СУБД под задачу. Заблуждение. Часто (мягко говоря) у заказчика уже есть СХОД (СУБД - это вряд ли), и задачу нужно решить именно в ней. И уж совсем невероятно, чтобы заказчик вкладывал средства в разработку СУБД)) Здравствуйте, ЧАЛ! Если у заказчика стоит СХОД(СУБД и проч.), о которой вы рассуждаете, скорее всего этот заказчик - не наш клиент. Тем более, я писал о проектировании , а не о, мягко говоря, доработке. Бредятинане рубящий в кашеНе подходит SQL-БД для хранения сессий - возьмёт Redis. Нужно хранить JSON-документы с поиском по полям - MongoDB или CouchDB. XML-документы - Sedna. Нужно хранить объекты - Cache' или реляционка с ORM. Нужны разнообразные отчёты - опять-таки "табличное" хранение данных. Заблуждение. Разработчику не могут быть нужны какие-либо предопределенные структуры данных. Они могут быть прописаны в ТЗ - это бывает. Прошу от вас ТЗ с такой конкретикой. Вряд ли дождусь, зная вашу активность по форуму. Потому что только разработчику и знать о структурах данных, с которыми он будет иметь дело. Это дело разработчика, ему и планировать предметную область, ему и думать о хранении в СУБД (у вас своё мнение о том, что является СУБД, просто предупреждаю). Бредятинане рубящий в кашеХреново, когда одну и ту же СУБД пытаются пихать везде, пытаясь придумать любые NoSQL, SQL и прочие хранения. Может быть. В IS этого и не делают. Хранят банально в базовой архитектуре)) Какая базовая архитектура у IS? Что это вообще такое? Жду ответа в этой ветке форума, а не ссылок. Именно ответов, а не разглагольстований о том, что такое архитектура, что такое базовая, и проч. Кстати, очень интересно, что вы понимаете под словом "архитектура". Бредятинане рубящий в кашеИ, если приходится реализовывать что-то уродское на Cache', наверное стоит задуматься, нафига каше вообще здесь нужна? Поскольку в Cache имеется уникальная базовая технология для решения информационно-логических задач, то есть, для разработки приложений БД без использования СУБД, то здесь Вы правы - в философском смысле, никакие другие системы, конечно, не нужны. Но, с естественными монополиями нужно как-то бороться))... А тема, наряду с http://www.sql.ru/forum/actualthread.aspx?tid=1012388 полезная)) Уникальная базовая технология - что вы имеете в виду? Мне честно, очень интерестно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 20:25 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
krvsaне рубящий в кашеВообще-то, нормальные разработчики сами выбирают СУБД под задачу. Только где их взять? Откройте для себя гугл. Или яндекс. krvsaне рубящий в кашеИ, если приходится реализовывать что-то уродское на Cache', наверное стоит задуматься, нафига каше вообще здесь нужна? Или перестать реализовывать это уродство... Согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 20:29 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
не рубящий в кашеЗдравствуйте, ЧАЛ! Если у заказчика стоит СХОД(СУБД и проч.), о которой вы рассуждаете, Это ошибка. Надеюсь, не умышленная. Я ни о какой СХОД (СУБД и проч.) не рассуждаю. не рубящий в кашескорее всего этот заказчик - не наш клиент. Мне о Ваших клиентах ничего не известно. Не стоит развивать эту мысль, и все дальше уходить от темы в сторону характеристик Ваших заказчиков. не рубящий в кашеТем более, я писал о проектировании , а не о, мягко говоря, доработке. Серьезная ошибка - Вы не писали о проектировании, а вот только сейчас об этом написали. И еще более серьезное заблуждение - и доработка, и разработка, конечно же, предполагают проектирование, и даже перепроектирование)) не рубящий в кашеПрошу от вас ТЗ с такой конкретикой. Вряд ли дождусь, зная вашу активность по форуму. В этой теме рассматривается ТЗ с такой конкретикой)) Так что уже дождались, даж до моего ответа)) не рубящий в кашеПотому что только разработчику и знать о структурах данных, с которыми он будет иметь дело. Это дело разработчика, ему и планировать предметную область, ему и думать о хранении в СУБД (у вас своё мнение о том, что является СУБД, просто предупреждаю). Серьезные заблуждения. И главное из них - я здесь свои мнения не высказываю. Только устоявшиеся чужие. не рубящий в кашеКакая базовая архитектура у IS? Что это вообще такое? Жду ответа в этой ветке форума, а не ссылок. По вежливее, пожалуйста)) Это не учебный портал. Но, в этом разделе есть тема, кажется "Вопросы новичков". Задайте там вопросы, если Вы еще не разобрались в технологии. не рубящий в кашеИменно ответов, а не разглагольстований о том, что такое архитектура, что такое базовая, и проч. Кстати, очень интересно, что вы понимаете под словом "архитектура". А мне уже давно не интересно. Поэтому обойдусь без разглагольствований)) не рубящий в кашеУникальная базовая технология - что вы имеете в виду? Мне честно, очень интерестно. Я имею в виду хорошо всем известную базовую технологию. А так же я имею в виду. что Вам это совершенно не интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2013, 22:21 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
не рубящий в кашеОткройте для себя гугл. Или яндекс. Это там ищут работников? А тех, что есть отправить обратно в Гугл и Яндекс? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 08:17 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
rongoМожет как-то проще можно? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 13:01 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
не рубящий в кашеВообще-то, нормальные разработчики сами выбирают СУБД под задачу. Не подходит SQL-БД для хранения сессий - возьмёт Redis. Нужно хранить JSON-документы с поиском по полям - MongoDB или CouchDB. XML-документы - Sedna. Нужно хранить объекты - Cache' или реляционка с ORM. Нужны разнообразные отчёты - опять-таки "табличное" хранение данных. Вы же читали это или перевод ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 13:31 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
Бредятинане рубящий в кашеЗдравствуйте, ЧАЛ! Если у заказчика стоит СХОД(СУБД и проч.), о которой вы рассуждаете, Это ошибка. Надеюсь, не умышленная. Я ни о какой СХОД (СУБД и проч.) не рассуждаю. ok. Бредятинане рубящий в кашескорее всего этот заказчик - не наш клиент. Мне о Ваших клиентах ничего не известно. Не стоит развивать эту мысль, и все дальше уходить от темы в сторону характеристик Ваших заказчиков. ok. Я говорил о том, что если у заказчика стоит не известная мне СУБД, я бы не рискнул с ней связываться. Бредятинане рубящий в кашеТем более, я писал о проектировании , а не о, мягко говоря, доработке. Серьезная ошибка - Вы не писали о проектировании, а вот только сейчас об этом написали. И еще более серьезное заблуждение - и доработка, и разработка, конечно же, предполагают проектирование, и даже перепроектирование)) Серьезная ошибка, что для вас выбор СУБД не явлется проектированием. Бредятинане рубящий в кашеПрошу от вас ТЗ с такой конкретикой. Вряд ли дождусь, зная вашу активность по форуму. В этой теме рассматривается ТЗ с такой конкретикой)) Так что уже дождались, даж до моего ответа)) Мой ответ был изначально адресован krvsa. И если вы удосужетесь прочитать-таки эту тему, то поймёте, что проблема в структуре БД. (И зачем я опять поднял эту тему?) Бредятинане рубящий в кашеПотому что только разработчику и знать о структурах данных, с которыми он будет иметь дело. Это дело разработчика, ему и планировать предметную область, ему и думать о хранении в СУБД (у вас своё мнение о том, что является СУБД, просто предупреждаю). Серьезные заблуждения. И главное из них - я здесь свои мнения не высказываю. Только устоявшиеся чужие. Без комментариев, ЧАЛ. Бредятинане рубящий в кашеКакая базовая архитектура у IS? Что это вообще такое? Жду ответа в этой ветке форума, а не ссылок. По вежливее, пожалуйста)) Это не учебный портал. Но, в этом разделе есть тема, кажется "Вопросы новичков". Задайте там вопросы, если Вы еще не разобрались в технологии. ok. Сложно с вами дискутировать. Напишите мне ещё про Дейта. И Кодда не забудьте добавить. Хотя, да, гораздо лучше послать собеседника никуда. Бредятинане рубящий в кашеИменно ответов, а не разглагольстований о том, что такое архитектура, что такое базовая, и проч. Кстати, очень интересно, что вы понимаете под словом "архитектура". А мне уже давно не интересно. Поэтому обойдусь без разглагольствований)) ok. Бредятинане рубящий в кашеУникальная базовая технология - что вы имеете в виду? Мне честно, очень интерестно. Я имею в виду хорошо всем известную базовую технологию. А так же я имею в виду. что Вам это совершенно не интересно. ok. Очередной слив. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 13:44 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
doublefintне рубящий в кашеВообще-то, нормальные разработчики сами выбирают СУБД под задачу. Не подходит SQL-БД для хранения сессий - возьмёт Redis. Нужно хранить JSON-документы с поиском по полям - MongoDB или CouchDB. XML-документы - Sedna. Нужно хранить объекты - Cache' или реляционка с ORM. Нужны разнообразные отчёты - опять-таки "табличное" хранение данных. Вы же читали это или перевод ? Да, читал. Тем более, взял от Твида маппинг JSON-структур. Но я всё же придерживаюсь мнения, что для каждой задачи должно быть своё, удобное решение. Ведь согласитесь, что для реляционного хранилища лучше использовать СУБД, которая сама построит для вас индексы и позаботится о производительности ваших SQL-запросов. И для хранения JSON'а лучше взять ту СУБД, что потом позволит искать по нему. Без последующих забот об индексах в глобалах и прочего. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 13:49 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
krvsaне рубящий в кашеОткройте для себя гугл. Или яндекс. Это там ищут работников? А тех, что есть отправить обратно в Гугл и Яндекс? Вам бы всё себя подороже продать... :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 13:51 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
rongo, Прошу прощение за превращение и этой темы в адовый оффтопик. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 13:52 |
|
Триггер при добавлении записи.
|
|||
---|---|---|---|
#18+
не рубящий в каше Да, читал. Тем более, взял от Твида маппинг JSON-структур. А что за маппинг JSON-структур? Не хотите статью написать о применении? Думаю многим будет интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2013, 14:00 |
|
|
start [/forum/topic.php?fid=39&fpage=28&tid=1557199]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 177ms |
0 / 0 |