powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получить значение генератора
22 сообщений из 47, страница 2 из 2
Получить значение генератора
    #39430286
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush,

На замечания Мимопроходящего спокойнее реагируй. Он по-дружески.
Здесь вообще такая атмосфера, хотя время от времени всё же модераторы кондиционируют.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430294
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,
Спасибо. Я в целом спокойно реагирую.
Но ОЧЕНЬ не люблю когда люди ругаются, да еще и без причины.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430301
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvа зачем читающей транзакции быть snapshot?
Э-э-э... Для целостности получаемых данных?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430328
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,
Спасибо. FullRefresh помог.
Пока на этом остановлюсь и буду дальше разбираться как правильно.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430345
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushПока на этом остановлюсь и буду дальше разбираться как правильно.

Раз уж будешь разбираться, то хочу тебя огорчить: добавлять запись через отдельный запрос,
а потом рефрешить датасет для обновления грида - это неправильно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430353
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

видимо, или нет pFIBUpdateSQL, либо в pFIBDataSet не прописан RefreshSQL. Вообще про все это можно было давно прочитать тут

Работа с транзакциями и их использование в FIBPlus. Часть 1
http://devrace.com/ru/fibplus/articles/2165.php
FIBPlus: Особенности механизма master-detail при работе с InterBase и Firebird. Часть 3. Режим AutoCommit. Работа в контексте двух транзакций
http://devrace.com/ru/fibplus/articles/1168.php

и т.д.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430357
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovakrushПока на этом остановлюсь и буду дальше разбираться как правильно.

Раз уж будешь разбираться, то хочу тебя огорчить: добавлять запись через отдельный запрос,
а потом рефрешить датасет для обновления грида - это неправильно.

Влт теперь все стало на свои места. Спасибо. Понимал что что-то не так.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430643
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хочется начинать новую тему т.к. частично вопрос уже тут обсуждаем.
Почему я смотрю Датасетом, а в ставку делаю отдельным запросом.
У меня на просмотр через один Датасет есть 2 запроса.
Разница только в том есть "дата решения вопроса" или нет.


Запрос который отображает ВСЕ нерешенные вопросы
Код: 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.
SELECT 
    ZAU.DATA_ROZGL, 
    ZAU.DATA_MAIL,
    ZAU.DATA_CORRECT, 
    lpad(trim(cast(ZAU.ID_OBLAST as char(5))),2,0) || lpad(trim(cast(ZAU.ID_RAJON as char(5))),2,0) || ' ' || RJ.NAME as rajon,
    tip.name as tip,
    prg.name as progs,
    ZAU.PRIMER, 
    ZAU.ZMIST,
    ZAU.RESULTS 
FROM 
    ZAUVAG ZAU, 
    rajon rj, 
    oblast obl, 
    progs prg, 
    tip_zauvag tip 
WHERE 
    (zau.id_oblast=obl.id)and
    (zau.id_rajon=rj.id)and
    (zau.id_prog=prg.id)and
    (zau.tip=tip.id)and
    (rj.id_obl=obl.id)and
    (zau.DATA_CORRECT is null) 
order by zau.data_rozgl DESC, rajon



Запрос который отображает все обращения
Код: 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.
SELECT 
    ZAU.DATA_ROZGL, 
    ZAU.DATA_MAIL,
    ZAU.DATA_CORRECT, 
    lpad(trim(cast(ZAU.ID_OBLAST as char(5))),2,0) || lpad(trim(cast(ZAU.ID_RAJON as char(5))),2,0) || ' ' || RJ.NAME as rajon,
    tip.name as tip,
    prg.name as progs,
    ZAU.PRIMER, 
    ZAU.ZMIST,
    ZAU.RESULTS 
FROM 
    ZAUVAG ZAU, 
    rajon rj, 
    oblast obl, 
    progs prg, 
    tip_zauvag tip 
WHERE 
    (zau.id_oblast=obl.id)and
    (zau.id_rajon=rj.id)and
    (zau.id_prog=prg.id)and
    (zau.tip=tip.id)and
    (rj.id_obl=obl.id)and
    (zau.DATA_CORRECT is null) 
order by zau.data_rozgl DESC, rajon





Разница в запросах только в наличии вот этой проверки
Код: sql
1.
(zau.DATA_CORRECT is null)



Я понял что реализация была, мягко говоря, не очень т.к. в таком случае я наступаю на грабли "невидимости" внесенных изменений т.к. все изменения вносятся в другой транзакции, старшей по номеру от моей читающей.

Подскажите как правильно поступить в данной ситуации. Может можно использовать один запрос, который отображает все записи, а фильтром задавать условие отсутствия даты?
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430651
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush, обойдись одним датасетом
Код: sql
1.
WHERE NOT(Cast(:solved_date AS DATE) IS NOT NULL) AND zau.DATA_CORRECT != :solved_date)
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430689
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после AND лишняя закрывающая скобка
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430695
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush, сори, это 20353294 решение для пропущенных параметров и для твоего случая не годится (привел ошибочно, проигнорировав эксплейн).

Ничто не мешает тебе менять в датасете запрос SELECT перед FullRefresh, в зависимости от выбранного пользователем варианта или же иметь два разных датасета, один из которых будет одномоментно неактивен.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430732
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,
Все вопрос решил.
Сделал общий запрос на вывод всех записей: решенных и нерешенных
А если нужно только нерешенные - фильтр data_correct is null
Проверил - работает.

Спасибо всем кто откликнулся
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430751
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush в таком случае я наступаю на грабли "невидимости" внесенных изменений т.к. все изменения вносятся в другой транзакции, старшей по номеру от моей читающей.
нет. версионность и транзакции ты так и не понял, читай
http://www.ibase.ru/mga/
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430760
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,
Спасибо. Еще раз перечитаю.
Если не пойму - создам тему "Вопросы по транзакциям" для уточнения/понимания/разъяснений
...
Рейтинг: 0 / 0
Получить значение генератора
    #39430836
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush,

очень рекомендую книжку "Мир Interbase".

К сожалению, в бумажном виде ее уже не купить, поэтом даю сылку на скачивание: http://maintracker.org/forum/viewtopic.php?t=3768062

Там есть раздел, буквально разжевывающий основы работы с FIB+.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39431023
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

Лучше Борри - мне ее творение как-то больше приглянулось.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39431058
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovakrushПока на этом остановлюсь и буду дальше разбираться как правильно.

Раз уж будешь разбираться, то хочу тебя огорчить: добавлять запись через отдельный запрос,
а потом рефрешить датасет для обновления грида - это неправильно.

Решил переделать вставку записи через датасет которым смотрю.
добавил insertsql:
Код: sql
1.
2.
INSERT INTO ZAUVAG(ID, DATA_ROZGL, DATA_MAIL, DATA_CORRECT, ID_OBLAST, ID_RAJON, TIP, ID_PROG, ZMIST, RESULTS, PRIMER)
VALUES(:ID, :DATA_ROZGL, :DATA_MAIL, :DATA_CORRECT, :ID_OBLAST, :ID_RAJON, :TIP, :ID_PROG, :ZMIST, :RESULTS, :PRIMER)



Перед вставкой получаю необходимые мне данные:
Код: sql
1.
2.
3.
4.
5.
  Obl:=DM.fbTLoadObl.Lookup('name',CBOblast.Text,'id');
  Rj:=DM.fbTLoadRajonInObl.Lookup('name',CBRajon.Text,'id');
  Tip:=DM.fbTLoadTipZauvag.Lookup('name',CBTipZv.Text,'id');
  Prg:=DM.fbTLoadProgs.Lookup('name',CBProgs.Text,'id');
  id_zauvag:=DM.DBZauvag.Gen_Id('GEN_ZAUVAG_ID',1);



Потом делаю вставку новой записи:
Код: sql
1.
DM.fbTZauvag.InsertRecord([id_zauvag,DTPDataRozgl.Date, DTPDataMail.Date, null, Obl, Rj, Tip, Prg, MZmist.Text,MResult.Text,'']);



Делфи ругается:
'DM.fbTZauvag.InsertQuery:
The insert failed because a column definition includes validation constraints.Validation error for column "ZAUVAG"."ID_RAJON", value "*** null ***".
'.

Проверял трейсом, переменная Rj не пустая, там число 12.
DDL Таблицы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE ZAUVAG (
    ID            BIGINT NOT NULL,
    DATA_ROZGL    DATE NOT NULL,
    DATA_MAIL     DATE,
    DATA_CORRECT  DATE,
    ID_OBLAST     INTEGER NOT NULL,
    ID_RAJON      INTEGER NOT NULL,
    TIP           SMALLINT,
    ID_PROG       INTEGER,
    ZMIST         VARCHAR(2500),
    RESULTS       VARCHAR(1000),
    PRIMER        VARCHAR(20)
);

ALTER TABLE ZAUVAG ADD CONSTRAINT PK_ZAUVAG PRIMARY KEY (ID);

ALTER TABLE ZAUVAG ADD CONSTRAINT FK_ZAUVAG_OBL FOREIGN KEY (ID_OBLAST) REFERENCES OBLAST (ID) ON DELETE SET NULL;
ALTER TABLE ZAUVAG ADD CONSTRAINT FK_ZAUVAG_PRG FOREIGN KEY (ID_PROG) REFERENCES PROGS (ID) ON DELETE SET NULL;
ALTER TABLE ZAUVAG ADD CONSTRAINT FK_ZAUVAG_RAJ FOREIGN KEY (ID_OBLAST, ID_RAJON) REFERENCES RAJON (ID_OBL, ID) ON DELETE SET NULL;
ALTER TABLE ZAUVAG ADD CONSTRAINT FK_ZAUVAG_TIP FOREIGN KEY (TIP) REFERENCES TIP_ZAUVAG (ID) ON DELETE SET NULL;

CREATE DESCENDING INDEX IDX_ZAUVAG_DATE_ROZGL ON ZAUVAG (DATA_ROZGL);



Что делаю не так?
...
Рейтинг: 0 / 0
Получить значение генератора
    #39431092
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Избавился от всех внешних ключей. Ошибка осталась :(
...
Рейтинг: 0 / 0
Получить значение генератора
    #39431118
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterчччД,

Лучше Борри - мне ее творение как-то больше приглянулось.

Мне творчество Чака Берри больше нравится. Хотя он, как и Х.Борри, про fib+ не писал.
...
Рейтинг: 0 / 0
Получить значение генератора
    #39431120
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Чччд!
You wrote on 31 марта 2017 г. 18:43:50:

Чччд> Мне творчество Чака Берри больше нравится.он умер
а цой жив
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получить значение генератора
    #39431161
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда уж Чак Норрис. Он тоже жив.

P.S. А чего это вы оффтопить решили?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получить значение генератора
    #39431863
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Это не оффтоп, а советы почитать что-то лучше предложенного, хотя и не содержащего нужной темы.
...
Рейтинг: 0 / 0
22 сообщений из 47, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получить значение генератора
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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