Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD12.5: Работа над ошибками / 9 сообщений из 9, страница 1 из 1
17.11.2010, 08:42
    #36960849
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
Проделывал тут reverse engineer к одной БД. Немного ошибся в настройках Comparison Options и в результате ко всем таблицам и индексам добавился атрибут FILEGROUP (MS-атрибут), т.е. в скрипте создания добавляется ON "PRIMARY", что мне совсем не надо. Как бы исправить автоматом для всех индексов разом? Таблиц много, руками править неохота (

Исходный PDM-файл (до reverse engineer) сохранен, но в новую версию уже добавлены описания таблиц и столбцов, а если откатиться к старой версии документа, то все будет потеряно.

В-общем вопрос: как можно пройтись по все индексам (например, с помощью vbs-скрипта), чтобы пофиксить эту мою промашку?
...
Рейтинг: 0 / 0
17.11.2010, 10:38
    #36961044
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
On 17.11.2010 08:42, Senya_L wrote:

> Проделывал тут reverse engineer к одной БД. Немного ошибся в настройках Comparison Options и в результате ко всем
> таблицам и индексам добавился атрибут FILEGROUP (MS-атрибут), т.е. в скрипте создания добавляется ON "PRIMARY", что мне
> совсем не надо. Как бы исправить автоматом для всех индексов разом? Таблиц много, руками править неохота (

А что-либо другое в Physical Options может быть, т.е. нельзя удалить их все?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17.11.2010, 11:47
    #36961198
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
Denis PopovА что-либо другое в Physical Options может быть, т.е. нельзя удалить их все?
Ничего в Physical Options нет, удалять можно все параметры.
...
Рейтинг: 0 / 0
17.11.2010, 12:03
    #36961237
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
Senya_LНичего в Physical Options нет, удалять можно все параметры.
Можно и руками:) Меню Model-> Tables, вывести поле Options и удалить везде его содержимое, тоже самое для индексов. А на VbScript примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
option explicit
ValidationMode = true
InteractiveMode = im_Batch

if ActiveModel is nothing then
   MsgBox "There is no current Model"
elseif not ActiveModel.IsKindOf(PdPDM.cls_Model) Then
   MsgBox "The current model is not an Physical Data model."
else
   ProcessFolder ActiveModel
end If

private sub ProcessFolder(folder)
  dim tab
  dim ind

  for each tab in ActiveModel.tables
    if not tab.isShortcut then
      if tab.PhysicalOptions <> null or tab.PhysicalOptions <> "" then
        output tab.name & " : " & tab.PhysicalOptions
        tab.PhysicalOptions = ""
      end if
      for each ind in tab.indexes
        if not ind.isShortcut then
          if ind.PhysicalOptions <> null or ind.PhysicalOptions <> "" then
            output ind.name & " : " & ind.PhysicalOptions
            ind.PhysicalOptions = ""
          end if
        end if  
      next
    end if
  next

  dim package
   
  for each package In folder.Packages
    if not package.IsShortcut then
      ProcessFolder package
    end if
  next

end sub
...
Рейтинг: 0 / 0
17.11.2010, 12:53
    #36961404
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
Denis Popov,

Спасибо. Правда, в таком виде скрипт не заработал. После допиливания выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Dim PDApp 
Set PDApp = CreateObject("PowerDesigner.Application.15.1") 

Dim PDM 
Set PDM = PDApp.OpenModel("d:\Job\Nav\StartTeamWorkFolder\Polyclinic\DB\PD Schema\ПоликлиникаEasy.pdm", omf_DontOpenView Or omf_Hidden) 

if Not (PDM Is Nothing) Then 
  dim tab
  dim ind

  for each tab in PDM.tables
    if not tab.isShortcut then
      if tab.PhysicalOptions <> null or tab.PhysicalOptions <> "" then
rem        output tab.name & " : " & tab.PhysicalOptions
        tab.PhysicalOptions = ""
      end if
      for each ind in tab.indexes
        if not ind.isShortcut then
          if ind.PhysicalOptions <> null or ind.PhysicalOptions <> "" then
rem            output ind.name & " : " & ind.PhysicalOptions
            ind.PhysicalOptions = ""
          end if
        end if  
      next
    end if
  next
  PDM.Save
End If
Все оказалось просто, оказывается :) Чтобы такими глупостями не отвлекать - где можно найти описание OLE для PD?
...
Рейтинг: 0 / 0
17.11.2010, 13:03
    #36961444
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
Senya_LСпасибо. Правда, в таком виде скрипт не заработал. После допиливания выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim PDApp 
Set PDApp = CreateObject("PowerDesigner.Application.15.1") 

Dim PDM 
Set PDM = PDApp.OpenModel("d:\Job\Nav\StartTeamWorkFolder\Polyclinic\DB\PD Schema\ПоликлиникаEasy.pdm", omf_DontOpenView Or omf_Hidden) 

if Not (PDM Is Nothing) Then 

Ты его вызывал не из-под самого PowerDesigner'а? Я-то проверял в нем самом, по меню Tools-> Execute Commands -> Edit/Run Script... Теперь буду знать как запускать отдельно, спасибо:)
Senya_LЧтобы такими глупостями не отвлекать - где можно найти описание OLE для PD?
Есть описание объектной модели, для PowerDesigner 15 это файл pdvbs15.chm в директории установки PD.
...
Рейтинг: 0 / 0
17.11.2010, 13:52
    #36961596
Senya_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
Denis PopovТы его вызывал не из-под самого PowerDesigner'а? Я-то проверял в нем самом, по меню Tools-> Execute Commands -> Edit/Run Script... Теперь буду знать как запускать отдельно, спасибо:)Есть неприятный момент в запуске из скрипта. Если под профилем запускающего пользователя это первый запуск или не сохранен Workspace по умолчанию, то выскакивает диалог "Сохранить? - Да/Нет/Отмена". Это не проблема, если вызваешь сам, а вот если то же самое проделывает система автоматической сборки, то в итоге висит процесс pdshel15 - ответить-то некому :) Вот и хочу в скрипты добавить в конце сохранение уоркспейса, для того и по OLE и интересуюсь.

ЗЫ. А я ничего не знал про Tools-> Execute Commands -> Edit/Run Script... Обмен опытом, аднака :)
...
Рейтинг: 0 / 0
18.11.2010, 13:30
    #36963747
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
Ууу, как всё запущено...
Тогда я ещё немного поделюсь опытом :)
1. В меню PowerDesigner 15 есть: Help -> MetaModel Objects Help
2. В свойствах объектов выпадающее меню в левом нижнем угле (углу? %)) : "Find in MetaModel Objects Help (Ctrl+F1)"
3. И на закуску: C:\Program Files\Sybase\PowerDesigner 15\Examples\MetaModel.oom

П.С.: I Love This Game!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.10.2013, 23:18
    #38417490
PD_16
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD12.5: Работа над ошибками
авторЕсть неприятный момент в запуске из скрипта. Если под профилем запускающего пользователя это первый запуск или не сохранен Workspace по умолчанию, то выскакивает диалог "Сохранить? - Да/Нет/Отмена".[

может кто нибудь знает как убрать это окно, в pd16 та же проблема
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD12.5: Работа над ошибками / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]