powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Модификация метеденных
25 сообщений из 33, страница 1 из 2
Модификация метеденных
    #32347504
Andrey_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Временные таблици. Их нет, а они нужны .

Насколько стабильно будет работать FB при частом create/drop table без постоянных backup/restore?
Все бы было хорошо если бы я не набрел на
http://ibase.ru/devinfo/ibfaq.htm#1.62
и
http://ibase.ru/devinfo/metaver.htm
Вот они и подорвали мою веру в FB.


P.S. И вообще очень хочется нечто типа: create [temp] table from select... А нету...
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347531
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не совсем понял ...
Для каких целей нужны временные таблицы? Между прочем есть совершенно иные методы работы ... могу рассказать ...

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347541
hyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да... Нет а хотелось бы конечно..
А так курсоров нема, viewы почти не работают ...
Ща будем писать и надеятся что не будут так виснуть ХП... :|
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347547
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа ....
FOR SELECT ... это почти тоже самое что и курсор или временная таблица.

авторЩа будем писать и надеятся что не будут так виснуть ХП... :|

Если зависнет - поставим памятник !!!!

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347591
Andrey_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для каких целей.

Вообще-то я спросил уже от того что устал доказывать рядомсидящим программистам, что временные таблици ненужны и вполне можно обойтись транзакцией snapshot и несколькоми запорсами. Просто чуствую что сил на споры с ними у меня неосталось и подготавливаю пути для отступления...
Они пишут выходные формы на FastReport-е, десятки однотипных выходных форм, и еще очень нелюбят запросы на объединения

Если нужно получить значения из двух таблиц я пишу нечто типа:
Код: plaintext
1.
2.
3.
4.
select tbl1.fld1, tbl3.fld2
from tbl1, tbl2, tbl3
where (tbl1.Id= 1 ) and
         (tbl1.IdTbl2=Tbl2.Id) and
         (tbl2.IdTbl3=Tbl3.Id)

Они:
Код: plaintext
1.
2.
select tbl1.IdTbl2, tbl1.fld1 from tbl1 where Id= 1  into :IdTbl2, :fld1;
select tbl2.IdTbl3 from tbl2 where Id=:IdTbl2 into :IdTbl3;
select tbl3.fld2 from tbl3 where Id=:IdTbl3 into :fld2;



У меня просто закончилось терпение повторять одно и тоже, а в приказном порядке я тоже немогу действовать... Ну представь себе как это выглядело бы состороны: "20-тилетний сопляк (это я :)) учит программистов с 25-30 летним стажем как программы писать". Короче вы мне скажите будет оно нормально работать или нет?
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347693
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну конечно будет. И то и другое. Хотя первое решение наиболее удобнее.

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347740
Andrey_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вообще-то спрашивал про "частое create/drop table без постоянных backup/restore", а не про те запросы :)
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347758
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про создание/удаление таблиц могу сказать одно :
База будет разрастаться на глазах ...

Еще раз повторяю - самое лучшее и правлиьное решение :
Использовать ХП.

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32347897
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Andrey_

Позволю себе несколько замечаний к уже высказанным:
1. Нет такой ситуации, когда невозможно обойтись без временной таблицы.
2. В общем случае выполнение одного запроса всегда быстрее нескольких.
При этом логика проще и понятней.
3. Твои "программисты" чего-то не догоняют...:)
Если они действительно предлагают, как ты написал, то лично я сильно
сомневаюсь в их квалификации...

PS
Интересны их аргументы за вр.тбл. :)
...
Рейтинг: 0 / 0
Модификация метеденных
    #32348001
Zaharushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто так пишут все, кто пришел с Фокса :-)))
...
Рейтинг: 0 / 0
Модификация метеденных
    #32348019
Фотография KiLLun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно, у нас тоже так пишут, кто раньше базы на Лисах делал...
...
Рейтинг: 0 / 0
Модификация метеденных
    #32348021
Andrey_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Johnmen
1. Хм... ну например когда одни и теже данные должны быть видны в контексте нескольких транзакций. Возможно даже непересекающихся по времени. При этом исходные данные постоянно обновляются. Но в моем случае действительно всегда можно обойтись запросами в контексте одной транзакции. Правда прийдется в FastReport

2. Бесспорно.

3. Эти господа писали на FoxPro с момента его пявления. Отсюда и аргументация "У меня так было и оно работало, а главное все просто и понятно"
...
Рейтинг: 0 / 0
Модификация метеденных
    #32348057
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johnmen1. Нет такой ситуации, когда невозможно обойтись без временной таблицы.
Вообще-то есть, но КРАЙНЕ редко.

С 1998 года я создал несколько достаточно сложных БД.
И только один единственный раз не смог обойтись ХП - действительно требовались две временных таблицы. Жутко выпендрёжный отчёт понадобился заказчику. Я создал две обычных таблицы. Во время выполнения ХП сбрасывал туда результаты и затем объединив их в однин набор данных отправлял клиенту. Затем чистил таблицы. Чистил, а не удалял.
Поэтому не было никакой надобности менять метаданные во время каждого такого отчёта.
Частота надобности в этом отчёте была 1 или 2 раза в месяц.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32348934
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Zmeishe

Ну не могу я даже приблизительно представить ситуации, когда без вр.табл.
никак и никуда...:)
А то, что просто чистить, это верно.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32348956
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый - престарый способ:
1. Раз без временных таблмц можно обойтись, то обходимся без них.
2. Раз при Create Table - Drop Table пухнет база до очередного Create/Restore - не делаем так.
3. Если нашелся такой случай, что без временных таблиц - никак, то действуем так:
- "временная" таблица создается статически, т.е. один раз, при создании базы;
- каждый юзер при коннекте получает свой User_Connect_Id (создайте специальный генератор для этого).
- во временную таблицу данные пишутся с составным ключем, одним из полей которого является значение User_Connect_Id. Соответственно, остальные юзеры не видят эти записи (если не хотят их видет, конечно...)
- в конце - не Drop Table, а
delete from MyTable where User_Connect_Id = 9999...
...
Рейтинг: 0 / 0
Модификация метеденных
    #32348977
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на www.interbase-world.com есть статья как можно имитировать временные таблиц

дропать таблицу и создавать занова - это evil - начнут непропорционально разрастаться системные таблицы и очень скоро без backup/restore все начнет жутко тормозить
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349024
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще, где-то я читал (один злобный Фокспрошник показывал, что ли?), что число модификаций метаданных в InterBase ограничено счетчиком с очень небольшим число значений, который сбрасывается только при Backup/Restore. Из этого было сделан вывод, что FoxPro - forever.
Тем не менее, будте осторожны, меняйте методику работу.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349040
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну прально вы читали - 255 изменений кажись, а потом переполнение счётчика. В общем временные таблицы - это зло для IB/FB.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349044
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а почему так было сделано? С т.зр. всемирно-исторической?
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349050
Andrey_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>mv & Gold
Правильно все вы читали:
http://ibase.ru/devinfo/ibfaq.htm#1.62
и
http://ibase.ru/devinfo/metaver.htm
Только там написано "255 на одну таблицу", а не на всю БД.


Вы господа меня убедили, буду с новыми сила со злобными фоксовскими привычками боротся :)
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349059
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И индексы здесь пятнадцать раз при формировании отчета не построишь, до не просто по всяким-разным полям, а по функциям типа "как моя левая нога захочет", и индексы Ascending при сортировке Descending не работают (надо создавать еще раз, но Descend). В общем, это не FoxPro...
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349234
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnmenНу не могу я даже приблизительно представить ситуации, когда без вр.табл. никак и никуда...:)
Тогда помоги, буду очень благодарен.

Бухгалтерская программа.
Таблица "Журнал операций" или ещё называют "Журнал проводок"
В упрощенном варианте
Id integer,
Oper_date date,
Debit integer, /*Код счёта по дебету из плана счетов*/
Kredit integer, /*Код счёта по кредиту из плана счетов*/
Summa double precision

Задача - построить отчёт по форме облпотреб союза образца 1971 года.
Это типа образец
-----------------------------------------------------------------------------
| Дебет | Кредит |
-----------------------------------------------------------------------------
|счёт | cумма частная | сумма общая | счёт |cумма частная | сумма общая |
| Сальдо на 01.01.2003 <сколько-то> |
-----------------------------------------------------------------------------
41/01/01 | 100 р | <null> | 62/01/01 | 333 р | <null> |
41/01/02 | 200 р | <null> | 62/01/02 | 444 р | <null> |
------------------------------------------------------------------------------
| Сальдо на 01.02.2003 <сколько-то> |
-----------------------------------------------------------------------------
41/01/01 | 100 р | 200 р | 48/01 | 1111 р | <null> |
41/01/02 | 300 р | 500 р | 62/01/01 | 222 р | 555 р |
51/01 | 300 р | <null> | 62/01/02 | <null> | 444 р |

В общем сложность в следующем - заранее не известно какие счета и сколько их каждый месяц по дебету и соответственно какие и сколько их по кредиту. В один месяц по дебету строк больше - недостающие строки кредита заполнить <null>, другой месяц по кредиту больше - недостающие строки дебета заполнить <null>. Какой-то счет например в марте имел обороты, а в апреле по нему движения не было. Это значит, что его всёравно надо занести в отчёт и по марту и по апрелю и по маю .. до конца года.
Причём в каждом месяце дебетовая половинка этого отчёта должна быть отсортирована по возрастанию дебетовых счетов, а кредитовая половинка этого отчёта должна быть отсортирована по возрастанию кредитовых счетов.


На сальдо не обращайте внимание оно как раз через ХП, а остальное так:

несколькими ХП я заполняю две таблички одна по дебету, другая по кредиту, а затем их склеиваю, предварительно проанализировав и дополнив недостающие строки либо в одной либо в другой.
Не сделав этого никакой join не даст верного (по деньгам) и желаемого по внешнему виду (т.е. по красоте) результату.

Если у Вас возникли дополнительные (уточняющие вопросы) спрашивайте.
Я давно хочу избавиться от этих двух таблиц.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349266
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я забыл образец оформить так, чтобы лучше было
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 -----------------------------------------------------------------------------
 
|             Дебет                                 |    Кредит                                     |
 -----------------------------------------------------------------------------
 
|счёт | cумма частная | сумма общая | счёт |cумма частная | сумма общая |
| Сальдо на    01 . 01 . 2003   <сколько-то>                                                    |
 -----------------------------------------------------------------------------
 
  41 / 01 / 01  |  100  р         |    <null>        |  62 / 01 / 01  |  333  р         |    <null>      |
  41 / 01 / 02  |  200  р         |    <null>        |  62 / 01 / 02  |  444  р         |    <null>      |
 ------------------------------------------------------------------------------
 
| Сальдо на    01 . 02 . 2003   <сколько-то>                                                  |
 -----------------------------------------------------------------------------
 
  41 / 01 / 01  |  100  р         |     200  р        |  48 / 01      |  1111  р          |     <null>   |
  41 / 01 / 02  |  300  р         |     500  р        |  62 / 01 / 01  |  222  р           |      555  р     |
  51 / 01      |  300  р         |   <null>        |  62 / 01 / 02  | <null>          |      444  р    |   
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349310
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я эти ужасные таблицы формирую в вариантных динамических массивах, а потом бросаю в Excell, и сшивать не надо, и пусть бухгалтера сами думают, как все это распечатать. Естествено, за несколько проходов:
- сначала формирую формирую загловки (горизонтальные и вертикальные), а затем - пробегаюсь еще раз - заплняю данными.
Excel - очень классно. На любой принтер годится.
...
Рейтинг: 0 / 0
Модификация метеденных
    #32349323
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я это рапечатываю в QuickReport несколько страничек (обычно 3-5) формата A4. Формируется всё на сервере. И бухгалтера заняты анализом эффективности работы предприятия, а не проблемой распечатывания.
Я стараюсь не напрягать клиентов тем, что можно сделать программно.
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Модификация метеденных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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