powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ODBC Reverse Engineering: Unable to list the domains
12 сообщений из 12, страница 1 из 1
ODBC Reverse Engineering: Unable to list the domains
    #33471992
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

PowerDesigner: 10.0 (лицензионный), 10.1, 11.1 - триал
DBMS: Sybase ASE 12.5.1 | 12.5.3 (лицензионные)

Действие: реинжениринг PDM по текущему состоянию БД для последующей синхронизации с текущей версией PDM-модели.

Описание проблемы:

1) File | Reverse Engineer | Database...
2) New Phisical Data Model: DBMS Sybase AS Enterprise 12.5.1 & Copy the DBMS Definition in model
3) Using ODBS data source (with admin`s permissions)
4) ODBC Reverse Engineering. При выборе вкладки Domains порождается исключение 22003 (Unable to list the domains. DataDirect.ODBC Write Protocol driver.SQL Server: Arithmetic overflow occured).

Таким образом, попытка реконструировать домены при реинжиниринге через прямое ODBC соединение не удается, поэтому приходится выполнять реинжениринг двух PDM моделей: с использованием DDL-скрипта, порождаемого Sybase Central и через ODBC соединение. Затем объединять модели и только после этого синхронизировать модель с БД.

Вопрос:
~~~~~
Сталкивался ли кто-нибудь с описаной проблемой, удалось ли ее победить? Если удалось, то какими средствами.

Спасибо.
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33472551
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxlongint wrote:

> Сталкивался ли кто-нибудь с описаной проблемой, удалось ли ее победить?
> Если удалось, то какими средствами.

1. Попробуй взять другой ODBC-драйвер, если есть такая возможность. "ODBC Write Protocol driver" -
драйвер прямого подключения к БД, без клиента?
2. Попробуй посмотреть, какой именно SQL-запрос выполняет PowerDesigner для получения сиска доменов.
Может быть проблема в нем и можно его изменить.

Но, к сожалению, это все лишь предположения.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33472868
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис, вы подразумеваете какой-нибудь сторонний драйвер?
У меня Sybase ODBC Driver 4.20.00.67 (c дистрибутива ASE)
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33472888
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxlongint wrote:
> Денис, вы подразумеваете какой-нибудь сторонний драйвер?
> У меня Sybase ODBC Driver 4.20.00.67 (c дистрибутива ASE)

Может быть. Или вот с PowerDesigner 12 beta идет DataDirect ODBC50, там есть такой PB DATADIRECT OEM
5.00 Sybase Wire Protocol. Повторюсь, это всего лишь догадки, к сожалению, ASE нет под рукой.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33476123
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удалил предыдущую установку PowerDesigner и очистил реестр (Fix-It Utilities + Norton System Works). Установил PowerDesigner 12.0 Beta 2. Создал DSN к базе для драйверов PB Data Direct OEM Sybase Wire Protocol версии 4.20.00.30. Используя этот DSN попытался выполнить реверсинжениринг базы данных. Домены не распознаются.

Для чистоты эксперимента установил "с нуля" Windows XP SP2, Sybase ASE 12.5.3, Open Client (спасибо автору статьи о клонировании ОС Windows 2000/2003/XP с предустановленными приложениями, отдельные many thanks Norton GHost и Петру Нортону). Со скрипта создал целевую базу данных. Проверил разные "мелочи" (объем кэша, объем стека хп, размещение данных и лог`ов на разных device, us_english и cp1251 и т.п.). На всякий случай преувеличил объемы всякой памяти для внутренних нужд Sybase. Постучал в бубен и повторил реверсинжениринг. Домены не распознаются.

Создал MyFavoriteDatabase с одним доменом и одной таблицей, содержащей единственный столбец MyFavoriteColumn int not null. Бубен не трогал, но вспомнил Lord of The Dance... Повторил реверсинжениринг. Домены не распознаются.

Вероятнее всего, фирменные PDF-файлы документации на Sybase PowerDesigner прочтены мною либо недостаточное количество раз, либо недостаточно осмыслены - по строгому определению, ошибка - есть несоответствие порядка выполняемых действий (как разработчиком, так и пользователем) порядку выполнения действий для достижения цели, указанному в руководстве. Тем более, что руководства написаны на не терпящем двузначности английском языке.

"...какой именно SQL-запрос выполняет PowerDesigner для получения сиска доменов". Честно говоря, не вникал, но точно из syiq125.xdb. Файл не изменялся, т.е. используется as is.

Сорри за некоторые отступления, досадно за нераспознаваемую мной собственную ошибку и, вследствие несколько удлиненный путь синхронизации изменений.
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33476144
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, очепятка: вместо syiq125.xdb следует читать "syase1251.xdb, syase1253.xdb, в зависимости от текущей DBMS"
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33476450
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внушает:) Попробуй стукнуться на форум Sybase по PowerDesigner, может там есть нечто подобное:
http://forums.sybase.com/cgi-bin/webnews.cgi?cmd=listitems&group=sybase%2Epublic%2Epowerdesigner%2Egeneral

В конце концов может техподдержка что подскажет.
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33477143
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действия:

1) Освежить разговорный english чтением пейджера forums.sybase.com ;)
2) Запастись "наркотиками" (копченое сало, сленг), освежить нативный разговорный - может пригодиться при работе с пейджером....
3) Колдонуть VBS и насладиться картиной слияния архивной и "композитной" PDM моделей.
4) ОписАть заклинания step by step (с иллюстрациями Марайя) для успешной синхронизации PDM модели с физической БД в случае нестандартного поведения PowerDesigner. Есть ньюансы при слиянии модели, восстановленой по DDL скрипту от Sybase Central, с моделью, восстановленой через ODBC соединение. Опубликовать в текущем топике.
5) Извлечь и опубликовать причину нестандартного поведения PD. Опубликовать в текущем топике.
6) take a many-many-many cups of coffee and relax..... ;)
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33507176
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно, есть описанное в документации ограничение на тип данных и его длину для домена, но я в документации PD 10, 11, 12 его не обнаружил.

Для наблюдения эффекта достаточно добавить либо MyFrstUglyDomain либо MyScndUglyDomain.

Срабатывает для Power Designer 10.x, 11.x, 12 Beta2.
Версия используемого для подключения драйвера ODBC влияния не оказывает.

Иллюстрация:
Код: 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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
/* ************************************************************** */
/* После выполнения скрипта, находясь в Power Designer,           */
/* выполните реверс-инжениринг PDM через прямое ODBC подключение  */
/* к БД MyDatabase.                                               */
/* При выборе доменов на вкладке Domains                          */
/* наблюдается исключение 2203.                                   */
/* ************************************************************** */

/*================================================================*/
/* Database name:  MyDatabase                                     */
/* DBMS name:      Sybase AS Enterprise 12.5.2                    */
/* Created on:     27.01.2006 11:06:55                            */
/*================================================================*/


use master
go

if exists( select  1  from master.dbo.sysdatabases 
                    where name = 'MyDatabase')
   drop database MyDatabase
go

/*==============================================================*/
/* Database: MyDatabase                                         */
/* замениете data_00, log_00 на соответствующие используемые    */
/* Вами устройства                                              */
/*==============================================================*/
create database MyDatabase
on data_00= 10 
log on log_00= 10 
go

use MyDatabase
go

/* ********************************************************************* */
/*                                                                       */
/* Cледующие домены при реинжениринге БД через прямое ODBC подключение   */
/* вызывают исключение 2203 (Arithmetic overflow),  независимо от        */
/* версии драйверов ODBC - PB DataDirect OEM 5.00 Sybase Wire Protocol,  */
/* PB DataDirect OEM 4.20 Sybase Wire Protocol - и версии Power Designer */
/*                                                                       */
/* ********************************************************************* */

/*==============================================================*/
/* Domain: MyFrstUglyDomain                                     */
/*==============================================================*/
execute sp_addtype MyFrstUglyDomain, 'varbinary(256)', 'null'
go

/*==============================================================*/
/* Domain: MyScndUglyDomain                                     */
/*==============================================================*/
execute sp_addtype MyScndUglyDomain, 'varchar(256)', 'null'
go
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33507254
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Домены с типами данных varbinary и varchar длиной меньше 256 - проблем не вызывают, так же, как и другие, не упомянутые здесь, стандартные типы данных.
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33509298
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Трассировка скриптов ASE12.5.2::Script\Objects\Domain\SqlAttrQuery и ASE12.5.2::Script\Objects\Domain\SqlListQuery
(Tools|Resources|DBMS… --> ASE 12.5.2 --> DBMS Properties --> Script\Objects\Domain\SqlAttrQuery и Script\Objects\Domain\SqlListQuery) позволяет увидеть исключение при выполнении select –
Arithmetic overflow during implicit conversion of INT value '512' to a TINYINT field .

В скриптах
ASE12.5.2::Script\Objects\Domain\SqlAttrQuery
ASE12.5.2::Script\Objects\Domain\SqlListQuery

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select distinct
   u.name,
   i.name,
   isnull(u.prec,u.length),
   u.scale,
   convert(char( 20 ), isnull(u.tdefault,  0 )),
   convert(char( 20 ), isnull(u.domain,  0 ))
from

строку
Код: plaintext
isnull(u.prec,u.length),
заменил на
Код: plaintext
u.length,

С использование драйверов PB DataDirect 4.0, 4.20, 5.0 в Power Designer версий 10.0, 10.1, 11.1 и 12 Beta2 при реинжениринге с использованием непосредственного подключения через ODBC - проблем не возникает.

Побочных эффектов пока не обнаружил. Пока не обнаружено...

Denis Popov. 9 янв 06, 13:28. Попробуй посмотреть, какой именно SQL-запрос выполняет PowerDesigner для получения сиска доменов. Может быть проблема в нем и можно его изменить.

Many thanks, Денис.

Теперь можна рилакснуть )))
...
Рейтинг: 0 / 0
ODBC Reverse Engineering: Unable to list the domains
    #33509300
maxlongint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arithmetic overflow during implicit conversion of INT value '512' to a TINYINT field - для домена с типом данных varbinary(256). Аналогично для домена с типом данных varchar(1024). т.е. "длина" данных > 255
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ODBC Reverse Engineering: Unable to list the domains
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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