powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Power Designer. VBScript. Установить столбцу значение по умолчанию.
3 сообщений из 3, страница 1 из 1
Power Designer. VBScript. Установить столбцу значение по умолчанию.
    #37720740
sergrx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему из скрипта не разрешается выставить значение по умолчанию для столбца?
В нескольких таблицах добавлены столбцы "is_deleted" типа bit, значение по умолчанию сразу не установил (подставляется null), а сейчас хочу циклом выставить "0".
Код: vbnet
1.
clmn.CanSetAttribute( "DefaultValue", dflt_isdeleted.value, err_message)

возвращает "Ложь". Хотя ручками всё работает: и прямой установкой значения в 0, и путём выбора соотв. объекта типа Defaults (isdeleted_default)

Код: vbnet
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.
43.
44.
45.
46.
47.
48.
Dim model
Dim ModelTables
Dim DefaultValue
Dim srtTbl
Dim clmn
Dim tbl
Dim table_temp
Dim dflt_isdeleted 'ссылка на нужный "Default"-объект 
Dim dflt
Dim err_message

set model=ActiveModel
set ModelTables = model.tables
set DefaultValues = model.defaults

output Version

  'поиск нужного "default"
 for each dflt in DefaultValues
   if dflt.name="isdeleted_default"  then 
     set dflt_isdeleted = dflt
   end if
 next

 if not(isObject(dflt_isdeleted)) then
   output "not found ""Default"" obj"
   quit
 end if
 
  output "DefaultObj:" + dflt_isdeleted.name + "=" + dflt_isdeleted.value  

   'перебор таблиц, столбцов
   for each tbl in ModelTables
      If IsObject(tbl) Then
         set table_temp = tbl
         for each clmn in table_temp.Columns
      
            if clmn.name="isdeleted" then   
               output clmn.Table + " = " _
                                 & + CStr(clmn.GetAttribute("CannotModify")) _
                                 & +", " + CStr(clmn.DefaultValue) _
                                 & +", " + CStr(clmn.CanSetAttribute( "DefaultValue", dflt_isdeleted.value, err_message))
               output err_message
               'output CStr(clmn.SetAttribute( "DefaultValue", dflt_isdeleted))
            end if
         next
      End if
   next


Output window:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
VB Script started on 23.03.2012 at 16:50:44
16.0.0.3488
DefaultObj:isdeleted_default=0
Table 'dbo'.'address' = Ложь, null, Ложь
Default Value cannot be set to this value
Table 'dbo'.'checkpoints' = Ложь, 0, Ложь
Default Value cannot be set to this value
Table 'dbo'.'company' = Ложь, , Ложь
Default Value cannot be set to this value
Table 'dbo'.'email' = Ложь, , Ложь
Default Value cannot be set to this value
Table 'dbo'.'people' = Ложь, , Ложь
Default Value cannot be set to this value
...
Рейтинг: 0 / 0
Power Designer. VBScript. Установить столбцу значение по умолчанию.
    #37722725
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему DefaultValue - это значение, а устанавливать надо сам default:
Код: vbnet
1.
2.
3.
output err_message
set clmn.default = dflt_isdeleted
'output CStr(clmn.SetAttribute( "DefaultValue", dflt_isdeleted))
...
Рейтинг: 0 / 0
Power Designer. VBScript. Установить столбцу значение по умолчанию.
    #37723189
sergrx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё работает )
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Power Designer. VBScript. Установить столбцу значение по умолчанию.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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