Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD 15.3: сбросить всем полям Collation / 5 сообщений из 5, страница 1 из 1
31.10.2012, 11:30
    #38019780
igor_ku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD 15.3: сбросить всем полям Collation
Всем привет!

Пару лет назад немного ковырялся с VB-скриптами в Sybase PD 15 и кое-что узнал при них, но вот новая простая (на мой взгляд) проблема, которую однако не могу решить.

Дано : имеется модель БД (Microsoft SQL Server 2008) с порядка 600+ таблицами. Точно не знаю, но полагаю она была получена путём реверс-инжениринга.
Проблема : все строковые поля в этой модели имеют явно прописанный Collation (тот что в поле Collation name на вкладке Microsoft в свойствах поля).

Вопрос : как сбросить всем полям св-во Collation в пустое?

Что уже пытался делать .
Пробовал несколько вариантов установки расширенных атрибутов, но они не приводят к желаемому результату. Они все отлично работают, но только не для моего случая. Без проблем пишут любую другую строку, но пустую не хочет. Отрывки из vbs:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
emptystr = ""
   ...
           If column.GetExtendedAttribute("ExtCollation") <> "" Then

             '4 след. строки - это одно и то же, но разный синтаксис:
             Call column.SetExtendedAttribute("ExtCollation", null)
                  column.SetExtendedAttribute "ExtCollation", null
             Call column.SetExtendedAttribute("ExtCollation", emptystr)
                  column.SetExtendedAttribute "ExtCollation", emptystr
             
             output "   - collation changed to '" + column.GetExtendedAttribute("ExtCollation") + "'."



Как сбросить Collation полям? Помогите, плиз!

Спасибо!
...
Рейтинг: 0 / 0
31.10.2012, 16:24
    #38020424
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD 15.3: сбросить всем полям Collation
igor_ku,
какая версия PD?
...
Рейтинг: 0 / 0
31.10.2012, 16:34
    #38020440
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD 15.3: сбросить всем полям Collation
igor_ku,
Могу ошибаться, кажется начиная с версии 15.3 появился метод SetExtendedAttributeText, он решит вашу проблему:

Код: vbnet
1.
2.
3.
4.
5.
6.
Dim col, tb
set tb = ActiveSelection.Item(0)
for each col in tb.Columns
   col.SetExtendedAttributeText "ExtCollation",""
   output col.GetExtendedAttribute("ExtCollation")
next
...
Рейтинг: 0 / 0
31.10.2012, 16:48
    #38020463
igor_ku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD 15.3: сбросить всем полям Collation
Версия PD 15.3.0.3445 EBF15.

На предложенный вариант ругается как в аттаче.
...
Рейтинг: 0 / 0
31.10.2012, 16:50
    #38020467
igor_ku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PD 15.3: сбросить всем полям Collation
Упс, сорри - всё Ок. Я неправильно попользовал этот метод. Всё работает . СПАСИБО!!!
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD 15.3: сбросить всем полям Collation / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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