|
|
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Denis Popov разбивают пакет на составляющие, после чего теряется его первоначальный вид. Лучше бы хранили одним куском текста, как процедуры. Денис, так ли он важен этот первоначальный вид? Что в первоначальном виде ценно, порядок процедур и типов? По-моему, тут PD поощряет к лучшей организации кода, к тому же легче типы и процедуры таскать между ora-пакетами. А "одним кусом" и так можно пихнуть в Initialization. Можно и шаблоны подкрутить если есть необходимость. ...Просто сложновато мне представить пример, где первоначальный вид ora-пакета очень важно сохранить, т.к. в последнее время я на mssql "сижу". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2009, 11:18 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Роман Дынник wrote at 24.05.2009 12:18: > Денис, так ли он важен этот первоначальный вид? Что в первоначальном > виде ценно, порядок процедур и типов? По-моему, тут PD поощряет к лучшей > организации кода, к тому же легче типы и процедуры таскать между > ora-пакетами. Например, мне охота сохранить комментарии к процедурам спецификации пакета. В теле еще можно впихнуть их в сами процедуры, в спецификации не получится. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2009, 11:32 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Denis Popov Например, мне охота сохранить комментарии к процедурам спецификации пакета. В теле еще можно впихнуть их в сами процедуры, в спецификации не получится. Тут, видимо, единственный способ - собирать source пакетов c комментариями через vbs. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 09:39 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Заранее извиняюсь, если подобный вопрос уже задавался, просто я его пока не нашел Делаю следующие шаги 1) в PD создаю таблицу Table1, в ней колонку created, в ней значение по умолчанию getdate() 2) генерирую полученную таблицу в базу - сгенерированный скрипт: create table Table1 (created datetime null default getdate()) go при этом в базе создается ограничение: "DF__Table1__created__4A8310C6" , которое не отображается в PD и при каждом последующем апдейте базы из модели PD упрямо указывает на то, что не должно быть такого ограничения, но при перезоздании таблицы вновь сгенерированным скриптом MSSQL естественно создает опять ограничение, только оканчиваться оно будет другими символами, например: DF__Table1__created__503BEA1C . И хрен бы сним, но если проделать апдейт модели из базы, то ограничение уже появится в PD. И вот тут возникает проблема, в следующий раз при апдейте базы из модели, пересоздавая таблицу(например при вешании Primary key на тот же столбец created) уже будет сгенерирован скрипт create table dbo.Table1 (created datetime not null constraint DF__Table1__created__503BEA1C default getdate(), constraint PK_TABLE1 primary key (created) ) on "PRIMARY" go Т.е. будет создаваться ограничение уже созданное в базе!! и появляется ошибка! У меня в базе множество таблиц и множество ограничений, как избежать подобной ошибки! Может можно как-нибудь вообще отключить в PD репликацию ограничений из базы? Только вот я пока не нашел где это сделать. P.S. сорри за такой объемный вопрос, просто хотел как можно понятнее объяснить ситуацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2009, 22:29 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
blest Т.е. будет создаваться ограничение уже созданное в базе!! и появляется ошибка! В свойствах столбца created, есть закладка microsoft, там - поле default constraint name. установите жёсткое имя констрейнта, тогда оно не будет автоматически генериться сервером. а будет браться то, которое вы задали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 00:50 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Роман Дынникblest Т.е. будет создаваться ограничение уже созданное в базе!! и появляется ошибка! В свойствах столбца created, есть закладка microsoft, там - поле default constraint name. установите жёсткое имя констрейнта, тогда оно не будет автоматически генериться сервером. а будет браться то, которое вы задали. Понятно, что жестко там можно забить все что угодно, только это не выход из проблемы. Если назвать ограничение по умолчанию x1, то например при добавлении primary key в таблицу будет сгенерирован такой скрипт: execute sp_rename Table1, tmp_Table1 go create table dbo.Table1 ( created datetime not null constraint x1 default getdate(), constraint PK_TABLE1 primary key (created) ) on "PRIMARY" go Т.е. при пересоздании таблицы он будет опять же создавать ограничение с именем уже созданным! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 10:41 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
blest Понятно, что жестко там можно забить все что угодно, только это не выход из проблемы. Если назвать ограничение по умолчанию x1, то например при добавлении primary key в таблицу будет сгенерирован такой скрипт: created datetime not null constraint x1 default getdate(), constraint PK_TABLE1 primary key (created) ) on "PRIMARY" go Т.е. при пересоздании таблицы он будет опять же создавать ограничение с именем уже созданным! с каким именем уже созданным? x1 или PK_TABLE1? Нужен alter скрипт и чтобы он учитывал при сравнении с БД, что ограничение default getdate() уже существует? Тогда следует задать в default constraint name имя, которое лежит в базе или сгенерить скрипт на удаление этого default constraint и далее придерживаться жестких наименований в констрейнтах во избежании подобных ситуаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 11:05 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Роман Дынникblest Понятно, что жестко там можно забить все что угодно, только это не выход из проблемы. Если назвать ограничение по умолчанию x1, то например при добавлении primary key в таблицу будет сгенерирован такой скрипт: created datetime not null constraint x1 default getdate(), constraint PK_TABLE1 primary key (created) ) on "PRIMARY" go Т.е. при пересоздании таблицы он будет опять же создавать ограничение с именем уже созданным! с каким именем уже созданным? x1 или PK_TABLE1? Нужен alter скрипт и чтобы он учитывал при сравнении с БД, что ограничение default getdate() уже существует? Тогда следует задать в default constraint name имя, которое лежит в базе или сгенерить скрипт на удаление этого default constraint и далее придерживаться жестких наименований в констрейнтах во избежании подобных ситуаций. Жирный я выделил то, что было важно. Т.е. в модели было ограничение x1 и в базе было ограничение x1 и при пересоздании таблицы он его же создавал. Вопрос как раз вот в том и есть: Как сгенерить скрипт на удаление этого default constraint ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 11:14 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Или если быть точнее нужно вот это: Нужен alter скрипт и чтобы он учитывал при сравнении с БД, что ограничение default getdate() уже существует! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 11:17 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Роман ДынникПосмотрите на CodeXChange, может там есть. Простите, не подскажете точнее что это? Где смотреть? Здесь? google.ru/Top/Computers/Programming/Development_Tools/Development_Environments/PowerBuilder/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 11:59 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
blest, в TSQL нет конструкции позволяющей добавить ограничение для конкретного столбца таблицы вне определения таблицы. Т.е. нет подобного псевдо-синтаксиса: alter table [tablename] aleter column [columnname] add constarint [constname] ... Отсюда и проблемы. Нужно удалять предыдущий столбец и создавать новый с ограничением. Отдельно ограничение столбцу на TSQL добавить нельзя. Любой TSQL код добавляемый при генерации можно написать на закладке Script. Например, там могло бы быть: alter table [tablename] drop constraint [constname] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 12:19 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Роман Дынникblest, в TSQL нет конструкции позволяющей добавить ограничение для конкретного столбца таблицы вне определения таблицы. Т.е. нет подобного псевдо-синтаксиса: alter table [tablename] aleter column [columnname] add constarint [constname] ... Отсюда и проблемы. Нужно удалять предыдущий столбец и создавать новый с ограничением. Отдельно ограничение столбцу на TSQL добавить нельзя. Любой TSQL код добавляемый при генерации можно написать на закладке Script. Например, там могло бы быть: alter table [tablename] drop constraint [constname] Ну понятно, что alter table должно присутствовать. Но вот, например, SSMS при добавлении удалении поля по умолчанию генерирует следующие скрипты: ALTER TABLE dbo.Table1 ADD CONSTRAINT DF_Table1_created DEFAULT (getdate()) FOR created ALTER TABLE dbo.Table1 DROP CONSTRAINT DF_Table1_created В идеале хотелось бы, чтобы и PD генерировал такие же скрипты, а не пересоздавал таблицы вместо этого. Но впринципе можно было обойтись, чтобы он при импорте из базы во вкладку Microsoft ничего не добавлял, только я не знаю можно ли это настроить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 12:28 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Павел КалугинРоман ДынникПосмотрите на CodeXChange, может там есть. Простите, не подскажете точнее что это? Где смотреть? Здесь? google.ru/Top/Computers/Programming/Development_Tools/Development_Environments/PowerBuilder/ http://www.sybase.com/developer/codexchange ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 12:30 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
blest, рекомендую не использовать обновление БД напрямую из PD, а использовать патчи, которые проверяются глазами и отчасти дописываются руками, а то что генерит PD при modify database можно использовать только как черновой вариант для патча. патчи складывайте куда нибудь в svn или vss или в том же PD в какие-нибудь artifacts. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 12:35 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Роман Дынникblest, рекомендую не использовать обновление БД напрямую из PD, а использовать патчи, которые проверяются глазами и отчасти дописываются руками, а то что генерит PD при modify database можно использовать только как черновой вариант для патча. патчи складывайте куда нибудь в svn или vss или в том же PD в какие-нибудь artifacts. Ну я впринципе понял уже, что напрямую без проверки из PD апдейтить базу неразумно. А что за пачти такие можно использовать? Я думал достаточно проверки и выполнения измененного мной скрипта, сгенерированного PD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 13:09 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
blestНу я впринципе понял уже, что напрямую без проверки из PD апдейтить базу неразумно. А что за пачти такие можно использовать? Я думал достаточно проверки и выполнения измененного мной скрипта, сгенерированного PD. скрипты(патчи) необходимо систематизированно хранить. нужно это по следующим причинам: - если база версии XX поднимается из бекапа, а для корректной работы приложения требуется версия базы YY, то накатываются скрипты от XX до YY. - в Unit-тестах и различных этапах Continues Integration (CI), чтобы привести базу в первоначальное состояние перед тестами, она либо поднимается из бекапа (так иногда удобней), либо создается из скрипта + патчи до версии YY. p/s/ соответственно, для автоматизации установки патчей, база должна иметь таблицу, где хранится номер версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 14:14 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Роман ДынникblestНу я впринципе понял уже, что напрямую без проверки из PD апдейтить базу неразумно. А что за пачти такие можно использовать? Я думал достаточно проверки и выполнения измененного мной скрипта, сгенерированного PD. скрипты(патчи) необходимо систематизированно хранить. нужно это по следующим причинам: - если база версии XX поднимается из бекапа, а для корректной работы приложения требуется версия базы YY, то накатываются скрипты от XX до YY. - в Unit-тестах и различных этапах Continues Integration (CI), чтобы привести базу в первоначальное состояние перед тестами, она либо поднимается из бекапа (так иногда удобней), либо создается из скрипта + патчи до версии YY. p/s/ соответственно, для автоматизации установки патчей, база должна иметь таблицу, где хранится номер версии. А заполнять эту таблицу вручную что ли? Так может проще генерируемые скрипты просто сохранять в отдельную папку и сортировать по дате создания? Как раз можно после восстановления бекапа накатить все скрипты, у которых дата создания больше, чем дата создания бекапа. Вот кстати вопрос: можно ли настроить, чтобы при апдейте базы из модели значение в File Name во вкладке General автоматически генерировалось? Например было стандартное название + айдишник(или дата) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 10:32 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
blestА заполнять эту таблицу вручную что ли? Так может проще генерируемые скрипты просто сохранять в отдельную папку и сортировать по дате создания? Как раз можно после восстановления бекапа накатить все скрипты, у которых дата создания больше, чем дата создания бекапа. [/quot ] Скрипты в БД не хранятся. В БД должен хранится только номер версии, устанавливаемый после прогона скриптов. Например, каждый скрипт последней строчкой может содержать update номер версии. С номерами как то надежней кажется чем с датами. [quot blest] Вот кстати вопрос: можно ли настроить, чтобы при апдейте базы из модели значение в File Name во вкладке General автоматически генерировалось? Например было стандартное название + айдишник(или дата) template-а для File Name нет. Этого можно добиться только если вы сами будете через VBS или Interop генерить скрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 11:30 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Разрабатываю физическую диаграмму БД для SQL Server. Каждая таблица в базе должна содержать несколько стандартных столбцов для хранения информации о том, кто и когда изменил данные: Created_By, Creation_Date_Time и так далее. Можно создать эти столбцы в каждой таблице вручную, но не хочется. Можно ли каким-то образом добавить их при генерации sql-скрипта для создания БД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2009, 13:36 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Flying Dutchman wrote at 04.06.2009 14:36: > Каждая таблица в базе должна содержать несколько стандартных столбцов > Можно ли каким-то образом добавить их при генерации sql-скрипта для создания БД ? Добавь их через VbScript Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2009, 13:39 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Denis Popov Flying Dutchman wrote at 04.06.2009 14:36: > Каждая таблица в базе должна содержать несколько стандартных столбцов > Можно ли каким-то образом добавить их при генерации sql-скрипта для создания БД ? Добавь их через VbScript Если я правильно понимаю, мне нужно внести свои изменения в стандартный скрипт, который использует PowerDesigner ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2009, 15:02 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Flying Dutchman wrote at 04.06.2009 16:02: > Если я правильно понимаю, мне нужно внести свои изменения в стандартный > скрипт, который использует PowerDesigner ? Нет, я имею в виду разовую или периодическую операцию через меню Tools-> Execute Commands-> Edit/Run Script... Пишешь скрипт на добавление требуемых полей и запускаешь. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2009, 16:11 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Denis Popov Flying Dutchman wrote at 04.06.2009 16:02: > Если я правильно понимаю, мне нужно внести свои изменения в стандартный > скрипт, который использует PowerDesigner ? Нет, я имею в виду разовую или периодическую операцию через меню Tools-> Execute Commands-> Edit/Run Script... Пишешь скрипт на добавление требуемых полей и запускаешь. То есть, столбцы будут добавлены к таблицам на диаграмме ? Это не совсем то, что хотелось. Хотя, если не удастся другим способом, то придется использовать этот. В этом случае, можно ли настроить PowerDesigner так, чтобы в таблицах на диаграмме эти столбцы не показывались, чтобы не загромождать диаграмму ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2009, 16:26 |
|
||
|
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
|
|||
|---|---|---|---|
|
#18+
Flying Dutchman wrote at 04.06.2009 17:26: > То есть, столбцы будут добавлены к таблицам на диаграмме ? Это не совсем > то, что хотелось. > Хотя, если не удастся другим способом, то придется использовать этот. По-моему это самое правильное, когда поля не изменяются на лету. > В этом случае, можно ли настроить PowerDesigner так, чтобы в таблицах на > диаграмме эти столбцы не показывались, чтобы не загромождать диаграмму ? В свойствах таблицы на закладке списка полей сними галку Displayed у требуемых. Имя колонки: буква D, если его нет, то добавь его через вторую справа кнопку "Customize Columns and Filter (Ctrl+U)". Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2009, 16:37 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36003848&tid=1542888]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
339ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 645ms |

| 0 / 0 |
