powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Ошибки в результатах сравнения БД с различием в типе домена [206]
2 сообщений из 2, страница 1 из 1
Ошибки в результатах сравнения БД с различием в типе домена [206]
    #39635968
В двух БД (Firebird 1.5) отличается тип домена в поле таблицы. Например, первая БД:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SET SQL DIALECT 3;
SET NAMES WIN1251;
SET CLIENTLIB 'C:\Work\FirebirdBinLnk\fbclient.dll';

CREATE DATABASE 'LOCALHOST:C:\Work\ErrorDemos\IbExpert\206\Err206-1.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET WIN1251;

CREATE DOMAIN "Dom1" AS SMALLINT;

CREATE DOMAIN "Dom2" AS SMALLINT;

CREATE TABLE "Table" (
    "Field1"  "Dom1" NOT NULL,
    "Field2"  "Dom2"
);


Вторая БД:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SET SQL DIALECT 3;
SET NAMES WIN1251;
SET CLIENTLIB 'C:\Work\FirebirdBinLnk\fbclient.dll';

CREATE DATABASE 'LOCALHOST:C:\Work\ErrorDemos\IbExpert\206\Err206-2.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET WIN1251;

CREATE DOMAIN "Dom1" AS SMALLINT;

CREATE DOMAIN "Dom2" AS VARCHAR(10) CHARACTER SET WIN1251 COLLATE PXW_CYRL;

CREATE TABLE "Table" (
    "Field1"  "Dom1" NOT NULL,
    "Field2"  "Dom2" COLLATE PXW_CYRL
);


В результате сравнения этих БД получается неверный сценарий:
Код: sql
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.
/* Server version: WI-V6.3.3.4870 Firebird 1.5 
   SQLDialect: 3. ODS: 10.1. Forced writes: On. Sweep interval: 20000.
   Page size: 16384. Cache pages: 2048 (32768 Kb). Read-only: False. */
SET CLIENTLIB 'C:\Work\FirebirdBinLnk\fbclient.dll';
SET NAMES WIN1251;

SET SQL DIALECT 3;

CONNECT 'LOCALHOST:C:\Work\ErrorDemos\IbExpert\206\Err206-2.fdb' USER 'SYSDBA' PASSWORD 'masterkey';

SET AUTODDL ON;

/******************************************************************************/
/****                           Altering domains                           ****/
/******************************************************************************/
UPDATE RDB$FIELDS
SET RDB$FIELD_TYPE = 7,
    RDB$FIELD_LENGTH = 2,
    RDB$CHARACTER_LENGTH = NULL,
    RDB$FIELD_SCALE = NULL,
    RDB$FIELD_PRECISION = NULL,
    RDB$FIELD_SUB_TYPE = NULL
WHERE RDB$FIELD_NAME = 'Dom2';

UPDATE RDB$FIELDS SET RDB$COLLATION_ID = NULL
 WHERE RDB$FIELD_NAME = 'Dom2';

COMMIT WORK;

/******************************************************************************/
/****                           Altering tables                            ****/
/******************************************************************************/
ALTER DOMAIN Dom2
  TYPE "Dom2" CHARACTER SET WIN1251;


При сравнении БД «в обратную сторону» аналогичные ошибки в сценарии.

Тестовые БД прилагаются.
...
Рейтинг: 0 / 0
Ошибки в результатах сравнения БД с различием в типе домена [206]
    #39637588
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Ошибки в результатах сравнения БД с различием в типе домена [206]
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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