|
Копирование записей.
|
|||
---|---|---|---|
#18+
Доброго дня и хорошей пятницы уважаемые гуру "ЖарПтицеводы" )) Подобной темы не нашел, поэтому постараюсь правильно описасть суть решения которое хотелось бы получить. Есть таблица с 50 полями но в дальнейчем число полей будет меняться, в ней присутствуют PI и FK ключами. Хочу сделать копиию одной из записи данной таблицы но при изменить всего лишь 3 поля. И самое сложное сделать это с динамически изменющимся количеством полей. Никто не сталкивался с подобной задачей в ХП или триггерах, если сталкивались то прошу поделиться опытом. Таблица: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 10:36 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
Hello, Drodman! You wrote on 27 мая 2016 г. 10:47:58: Drodman> самое сложное сделать это с динамически изменющимся количеством полей ну так и формируй запрос динамически. если внутри процедуры, или триггера, то выполняй его через EXECUTE STATEMENT Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 10:48 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
Я прошу прощения просто не совсем доконца понимаю. Если не сложно подправьте в случае надобности. т.е. мне нужно сделать примерно такую процедуру: Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 10:57 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
drodman, нет конечно. EXECUTE STATEMENT это отдельный оператор, его нельзя включать в DML инструкции. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:05 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
нет уж. дальше сам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:05 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
Большое спасибо. Очень помогли. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:07 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
drodman, в общих чертах это делается так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:26 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
rdb_dev, Огромное спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:52 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
drodmanЕсть таблица с 50 полями но в дальнейчем число полей будет меняться. Хочу сделать копиию одной из записи данной таблицы но при изменить всего лишь 3 поля. И самое сложное сделать это с динамически изменющимся количеством полей. И что в этом сложного? Тот, кто меняет количество полей, пусть меняет и процедуру копирования. PS: Предлагать нанять архитектора БД чтобы спроектировал нормальную базу вместо этого ....... - не буду. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 11:59 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
drodman FIELD1 VARCHAR(15) CHARACTER SET WIN1251, комментарий в сторону. Обычно при экспорте ddl из какой-нибудь тулзы (isql, ibexpert), набор символов для строковых столбцов выводится только в том случае, если он отличается от дефолтного для БД. Следовательно, у вас в rdb$database.rdb$character_set_name может быть пусто, и при случайном коннекте без win1251 и создании таблиц или добавлении столбцов строковые столбцы создадутся в этом самом чарсете, т.е. none (или не win1251). Рекомендую проверить эту ситуацию, и исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 12:03 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
kdv, спасибо, да дейстивтельно база лежит на сервере unix с кодировкой UTF-8, поэтому приходится в "тулзах" прописывать кодировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 16:02 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
drodmanбаза лежит на сервере unix с кодировкой UTF-8, поэтому приходится в "тулзах" прописывать кодировку. "Аффтар жжот!" (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 16:04 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
drodmanбаза лежит на сервере unix с кодировкой UTF-8, поэтому приходится CHARACTER SET WIN1251Отгоните от сервера диверсанта, пока он все не переломал. ТАК делать не надо. Если твоя клиентская часть в силу своей древности не понимает юникод, то укажи в строке коннекта, что ты хочешь получать вин1251, сервер тебе перекодирует, когда будет отдавать твоему клиенту данные. Делать пол базы в юникоде, половину в вин1251 в буквальном смысле "выстрел себе в ногу". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 17:26 |
|
Копирование записей.
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyДелать пол базы в юникоде, половину в вин1251 в буквальном смысле "выстрел себе в ногу". Да в общем-то пофиг, пока в DPB есть вменяемое значение isc_dpb_lc_ctype... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2016, 17:29 |
|
|
start [/forum/topic.php?fid=40&msg=39244736&tid=1562163]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 389ms |
0 / 0 |