powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Смена типа данных домена
19 сообщений из 44, страница 2 из 2
Смена типа данных домена
    #38927703
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть у кого-нибудь еще мнения, почему не конвертируются данные между типами данных? Или как можно их привести в итоге к numeric...
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38927710
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26поля создал не в 3-м диалекте
SET SQL DIALECT 3; эта команда не меняет диалекта базы.
Диалект базы можно назначить только командой create database
Т.е. базу надо создать в нужном диалекте, далее подключаться в нужном же диалекте (как минимум не мешать в этом серверу, он и сам неплохо разбирается с каким диалектом подключиться, если оный не указывать при коннекте)
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38927734
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,

Как я уже писал... диалект в БД в таблице RDB$DATABASE = 3. При подключении я не указываю диалект, т.к. то ли этого нет в моей версии IBExpert, то ли я попросту не знаю где именно его надо указать. Значит по умолчанию у меня должен быть с Ваших слов третий диалект... Вроде бы все верно... Если мне не верите, скажите что сделать чтобы предоставить вам достоверную информацию (логи, метаданные БД или что еще). А SET SQL DIALECT 3; я указывал чтобы наверняка задать третий диалект, в любом случае хуже от этого быть не должно.
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38927741
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26Как я уже писал... диалект в БД в таблице RDB$DATABASE = 3Вот тут давай подробнее. Начни с вывода содержимого RDB$DATABASE. Продолжи тем, как ты там нашёл диалект. И закончи показом gstat -h.
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38927770
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Прошу прощения - MON$DATABASE, а не RDB$DATABASE.





Database "C:\Database\MYBASE.FDB"
Database header page information:
Flags 0
Checksum 12345
Generation 6615
Page size 16384
ODS version 11.2
Oldest transaction 6573
Oldest active 6574
Oldest snapshot 6574
Next transaction 6607
Bumped transaction 1
Sequence number 0
Next attachment ID 4
Implementation ID 26
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Apr 3, 2015 15:46:57
Attributes force write

Variable header data:
Sweep interval: 0
*END*
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38927783
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26,
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38927789
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26,

проверь в sql editor, сколько будет
select 1/3 from rdb$database
или
select 22/7 from rdb$database
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928155
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Если галочка "использовать масштаб поля" должна стоять, то она у меня и так стоит...

kdv,

select 1/3 from rdb$database - возвращает 0
select 22/7 from rdb$database - возвращает 3
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928169
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26,

а ну ка покажи DDL той таблицы в которую ты новый филд добавил и нового домена. Чувствую что-то тут не то.
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928189
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Я так понимаю нужны запросы на создание домена и любой таблицы... Вытаскиваю из IBExpert'a как есть.

Код: plsql
1.
2.
CREATE DOMAIN MONEYRUB_NUM AS
NUMERIC(18,6);



Код: plsql
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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
/******************************************************************************/
/***               Generated by IBExpert 06.04.2015 15:37:13                ***/
/******************************************************************************/

/******************************************************************************/
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/***                                 Tables                                 ***/
/******************************************************************************/



CREATE TABLE DOCTAB_AMOUNTBALANCE_NOM (
    ID            KEYS NOT NULL /* KEYS = CHAR(16) */,
    OWNER         KEYS /* KEYS = CHAR(16) */,
    NOMENCLATURE  KEYS /* KEYS = CHAR(16) */,
    UNIT          KEYS /* KEYS = CHAR(16) */,
    FINSOURCE     KEYS /* KEYS = CHAR(16) */,
    SERIES        KEYS /* KEYS = CHAR(16) */,
    PARTIES       KEYS /* KEYS = CHAR(16) */,
    SUMMA         MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    PRICENOM      MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    PRICENOM1     MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */,
    SUMMA1        MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */
);




/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE DOCTAB_AMOUNTBALANCE_NOM ADD CONSTRAINT PK_DOCTAB_AMOUNTBALANCE_NOM PRIMARY KEY (ID);


/******************************************************************************/
/***                              Foreign Keys                              ***/
/******************************************************************************/

ALTER TABLE DOCTAB_AMOUNTBALANCE_NOM ADD CONSTRAINT FK_DOCTAB_AMOUNTBALANCE_NOM_1 FOREIGN KEY (OWNER) REFERENCES DOC_AMOUNTBALANCE (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE DOCTAB_AMOUNTBALANCE_NOM ADD CONSTRAINT FK_DOCTAB_AMOUNTBALANCE_NOM_2 FOREIGN KEY (NOMENCLATURE) REFERENCES REF_NOMENCLATURE (ID) ON UPDATE CASCADE;
ALTER TABLE DOCTAB_AMOUNTBALANCE_NOM ADD CONSTRAINT FK_DOCTAB_AMOUNTBALANCE_NOM_3 FOREIGN KEY (UNIT) REFERENCES REF_UNITS (ID) ON UPDATE CASCADE;
ALTER TABLE DOCTAB_AMOUNTBALANCE_NOM ADD CONSTRAINT FK_DOCTAB_AMOUNTBALANCE_NOM_4 FOREIGN KEY (FINSOURCE) REFERENCES REF_FINSOURCES (ID) ON UPDATE CASCADE;
ALTER TABLE DOCTAB_AMOUNTBALANCE_NOM ADD CONSTRAINT FK_DOCTAB_AMOUNTBALANCE_NOM_5 FOREIGN KEY (SERIES) REFERENCES REF_SERIES (ID) ON UPDATE CASCADE;
ALTER TABLE DOCTAB_AMOUNTBALANCE_NOM ADD CONSTRAINT FK_DOCTAB_AMOUNTBALANCE_NOM_6 FOREIGN KEY (PARTIES) REFERENCES REF_PARTIES (ID) ON UPDATE CASCADE;


/******************************************************************************/
/***                              Descriptions                              ***/
/******************************************************************************/

COMMENT ON TABLE DOCTAB_AMOUNTBALANCE_NOM IS 
'Документ "Корректировка суммы остатка" (Табличная часть "Номенклатура")';



/******************************************************************************/
/***                          Fields descriptions                           ***/
/******************************************************************************/

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.ID IS 
'Идентификатор';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.OWNER IS 
'Документ-владелец';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.NOMENCLATURE IS 
'Номенклатура';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.UNIT IS 
'Упаковка';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.FINSOURCE IS 
'Единица измерения';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.SERIES IS 
'Количество';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.PARTIES IS 
'Коэффициент';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.SUMMA IS 
'Сумма';

COMMENT ON COLUMN DOCTAB_AMOUNTBALANCE_NOM.PRICENOM IS 
'Цена';


...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928203
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

или вот более удачная таблица с данными и снимком того, что я вижу вместо нужного формата данных.

картинка:




запрос на создание таблицы (домен тот же):


Код: plsql
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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
/******************************************************************************/
/***               Generated by IBExpert 06.04.2015 15:42:55                ***/
/******************************************************************************/

/******************************************************************************/
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/
/******************************************************************************/
SET SQL DIALECT 3;



/******************************************************************************/
/***                                 Tables                                 ***/
/******************************************************************************/



CREATE TABLE DOCTAB_OPER_USLUGI (
    OWNER             KEYS NOT NULL /* KEYS = CHAR(16) */,
    USLUGA            KEYS /* KEYS = CHAR(16) */,
    MEDPERSONAL       KEYS /* KEYS = CHAR(16) */,
    DOLGNOST          KEYS /* KEYS = CHAR(16) */,
    PROFMEDHELP       KEYS /* KEYS = CHAR(16) */,
    RESULT_OBR        KEYS /* KEYS = CHAR(16) */,
    KOL               MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    KOLPLACE          MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    ITOG              MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    DATEON            DOMEN_DATE /* DOMEN_DATE = DATE */,
    ID                KEYS NOT NULL /* KEYS = CHAR(16) */,
    OPLATA_TYPE       KEYS /* KEYS = CHAR(16) */,
    OWNER_DOC         KEYS /* KEYS = CHAR(16) */,
    SUMMA             MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    SUMMAMED          MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    IS_THIS_ANALYS    BOOLEAN /* BOOLEAN = SMALLINT */,
    DS                KEYS /* KEYS = CHAR(16) */,
    CODEST            STRING40 /* STRING40 = VARCHAR(40) */,
    IS_NOT_RASCHET    BOOLEAN /* BOOLEAN = SMALLINT */,
    SUM_ONE           MONEYRUB /* MONEYRUB = DOUBLE PRECISION */,
    DATE_ADD          DOMEN_DATE /* DOMEN_DATE = DATE */,
    N_TOOTH           "INT" /* "INT" = INTEGER */,
    IS_MILK_TOOTH     BOOLEAN /* BOOLEAN = SMALLINT */,
    AUTHOR            KEYS /* KEYS = CHAR(16) */,
    DATEON_END        DOMEN_DATE /* DOMEN_DATE = DATE */,
    IS_OBR_USLUGA     BOOLEAN /* BOOLEAN = SMALLINT */,
    IS_DEFECT_PLOMB   BOOLEAN /* BOOLEAN = SMALLINT */,
    RESULT            STRING255 /* STRING255 = VARCHAR(255) */,
    BRANCH            KEYS /* KEYS = CHAR(16) */,
    IS_NOT_EXPORT     BOOLEAN /* BOOLEAN = SMALLINT */,
    MEDPERSONAL_SRED  KEYS /* KEYS = CHAR(16) */,
    HOSPITAL_TYPE     KEYS /* KEYS = CHAR(16) */,
    KOL1              MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */,
    KOLPLACE1         MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */,
    ITOG1             MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */,
    SUMMA1            MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */,
    SUMMAMED1         MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */,
    SUM_ONE1          MONEYRUB_NUM /* MONEYRUB_NUM = NUMERIC(18,6) */
);




/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT PK_DOCTAB_OPER_USLUGI PRIMARY KEY (ID);


/******************************************************************************/
/***                              Foreign Keys                              ***/
/******************************************************************************/

ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_1 FOREIGN KEY (USLUGA) REFERENCES REF_USLUGI (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_10 FOREIGN KEY (MEDPERSONAL_SRED) REFERENCES REF_MEDPERSONAL (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_11 FOREIGN KEY (HOSPITAL_TYPE) REFERENCES REF_HOSPITAL_TYPE (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_2 FOREIGN KEY (MEDPERSONAL) REFERENCES REF_MEDPERSONAL (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_3 FOREIGN KEY (DOLGNOST) REFERENCES REF_DOLGNOSTI (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_4 FOREIGN KEY (PROFMEDHELP) REFERENCES REF_PROFMEDHELP (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_5 FOREIGN KEY (OWNER) REFERENCES DOC_RECEPTION (ID) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_6 FOREIGN KEY (OPLATA_TYPE) REFERENCES REF_OPLATA_TYPE (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_7 FOREIGN KEY (RESULT_OBR) REFERENCES REF_RESULT_OBR (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_8 FOREIGN KEY (DS) REFERENCES REF_MKB (ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE DOCTAB_OPER_USLUGI ADD CONSTRAINT FK_DOCTAB_OPER_USLUGI_9 FOREIGN KEY (AUTHOR) REFERENCES REF_USERS (ID) ON DELETE SET NULL ON UPDATE CASCADE;


/******************************************************************************/
/***                                Indices                                 ***/
/******************************************************************************/

CREATE INDEX DOCTAB_OPER_USLUGI_IDX1 ON DOCTAB_OPER_USLUGI (OWNER_DOC);
CREATE INDEX DOCTAB_OPER_USLUGI_IDX2 ON DOCTAB_OPER_USLUGI (DATEON);
CREATE INDEX DOCTAB_OPER_USLUGI_IDX3 ON DOCTAB_OPER_USLUGI COMPUTED BY ((coalesce(IS_THIS_ANALYS, 0)));
CREATE INDEX DOCTAB_OPER_USLUGI_IDX4 ON DOCTAB_OPER_USLUGI (OWNER, OPLATA_TYPE);
CREATE INDEX DOCTAB_OPER_USLUGI_IDX5 ON DOCTAB_OPER_USLUGI (OWNER, DATEON, USLUGA);
CREATE INDEX DOCTAB_OPER_USLUGI_IDXIS_OBR ON DOCTAB_OPER_USLUGI COMPUTED BY ((coalesce(IS_OBR_USLUGA, 0)));


/******************************************************************************/
/***                                Triggers                                ***/
/******************************************************************************/


SET TERM ^ ;



/******************************************************************************/
/***                          Triggers for tables                           ***/
/******************************************************************************/



/* Trigger: DOCTAB_OPER_USLUGI_AD0 */
CREATE OR ALTER TRIGGER DOCTAB_OPER_USLUGI_AD0 FOR DOCTAB_OPER_USLUGI
ACTIVE AFTER DELETE POSITION 0
AS
begin
 delete from reg_oper_tarif a where a.owner=old.id;
end
^


/* Trigger: DOCTAB_OPER_USLUGI_BI0 */
CREATE OR ALTER TRIGGER DOCTAB_OPER_USLUGI_BI0 FOR DOCTAB_OPER_USLUGI
ACTIVE BEFORE INSERT POSITION 0
AS
begin
 new.date_add=current_date;
end
^


SET TERM ; ^



/******************************************************************************/
/***                              Descriptions                              ***/
/******************************************************************************/

COMMENT ON TABLE DOCTAB_OPER_USLUGI IS 
'Документ "Свод услуг" (Табличная часть "Оказанные услуги")';



/******************************************************************************/
/***                          Fields descriptions                           ***/
/******************************************************************************/

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.OWNER IS 
'Документ-владелец';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.USLUGA IS 
'Услуга';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.MEDPERSONAL IS 
'Мед. персонал, оказавший услугу';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.DOLGNOST IS 
'Должность мед. персонала, оказывавшего услугу';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.PROFMEDHELP IS 
'Профиль мед. помощи';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.RESULT_OBR IS 
'Результат обращения';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.KOL IS 
'Кол-во услуги';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.KOLPLACE IS 
'Кол-во мест применения';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.ITOG IS 
'Итого';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.DATEON IS 
'Дата оказания услуги';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.ID IS 
'Идентификатор записи';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.OPLATA_TYPE IS 
'Вид оплаты';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.OWNER_DOC IS 
'Источник данных';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.SUMMA IS 
'Сумма по строке';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.SUMMAMED IS 
'Сумма медикаментов';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.IS_THIS_ANALYS IS 
'Это исследование';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.DS IS 
'Диагноз';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.CODEST IS 
'Код услуги, введеный операторами';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.IS_NOT_RASCHET IS 
'Не расчитывать услугу';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.DATE_ADD IS 
'Дата добавления услуги';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.N_TOOTH IS 
'Номер зуба';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.IS_MILK_TOOTH IS 
'Признак того, что зуб является молочным';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.AUTHOR IS 
'Автор записи в табличной части';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.DATEON_END IS 
'Дата окончания услуги';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.IS_OBR_USLUGA IS 
'Является услугой законченного случая';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.IS_DEFECT_PLOMB IS 
'Дефект пломбы';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.RESULT IS 
'Результат обследования';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.BRANCH IS 
'Филиал (подразделение МО)';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.IS_NOT_EXPORT IS 
'Не выгружать, справочно';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.MEDPERSONAL_SRED IS 
'Соисполнитель. Мед. сестра';

COMMENT ON COLUMN DOCTAB_OPER_USLUGI.HOSPITAL_TYPE IS 
'“ип госпитализации';



/******************************************************************************/
/***                               Privileges                               ***/
/******************************************************************************/


/* Privileges of users */
GRANT ALL ON DOCTAB_OPER_USLUGI TO KSAMUUSER;





Думаю тут прекрасно видно, что что-то не так...
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928211
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26,

что даёт вот такой запрос

Код: sql
1.
2.
SELECT CAST(SUMMA AS MONEYRUB_NUM) AS SUMMA1
FROM DOCTAB_AMOUNTBALANCE_NOM D



лишние знаки есть?
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928218
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисчто даёт вот такой запрос
Лучше вот такой:
Код: sql
1.
2.
3.
SELECT CAST(SUMMA AS MONEYRUB_NUM) AS SUMMA1, CAST(CAST(SUMMA AS MONEYRUB_NUM) AS 
VARCHAR(22) AS SUMMAS
FROM DOCTAB_AMOUNTBALANCE_NOM D



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928220
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Данных в этой таблице нет. В другой таблице (с данными) выполняю запрос:
Код: plsql
1.
2.
SELECT CAST(SUMMA AS MONEYRUB_NUM) AS SUMMA1
FROM DOCTAB_OPER_USLUGI D



Результат:


...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928227
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

В виде строки выводит без погрешностей, приведение к numeric не помогает :)




...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928234
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26В виде строки выводит без погрешностей, приведение к numeric не помогает
:)
Отсюда вывод: ты совершенно зря вскипел на слове "врёшь" и проигнорировал вторую часть
предложения о баге в IBExpert. Выкинь эту каку и будет тебе счастье.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928248
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Я не проигнорировал, просто не знал как доказать, что это баг. И в чем собственно заключается сам баг? Я вижу, что в строку кастит из numeric нормально. Но откуда он берет погрешность при касте в numeric? Если это просто баг отображения, то на сколько я понимаю проблем быть не должно.
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928275
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26И в чем собственно заключается сам баг?
В том, что для работы с NUMERIC используется метод TField.AsFloat внутри которого значение
приводится к double и тем теряет точность. Если бы использовалось прямое преобразование в
строку, ошибка не возникала бы. Такой вот баг, характерный для всех наследников FIBC,
наследие рукожопа, который проектировал DB VCL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Смена типа данных домена
    #38928358
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собрал тестовый проект в Delphi, подключил эту БД в дизайнере, выполнил запрос: по факту данные хранятся в numeric и погрешности нет. Вопрос со сменой домена отпадает. Останется разобраться с ошибкой "Arithmetic exception, numeric overflow, or string truncation", но на сколько я понимаю тут проблем быть уже не должно. Всем большое спасибо!
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Смена типа данных домена
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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