|
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 7
|
|
Delphi + Firebird (создание сервиса, хранимые процедуры)28.02.2012, 22:42. Показов 3600. Ответов 7
Метки нет (Все метки)
Здравствуйте!
Тут небольшая задачка есть.. Нужно написать сервис, который будет запускаться ночью автоматически, чтоб днем никому не мешать работать.. Есть БД Firebird (версия 1.5), в ней 24 таблицы.. Нужно 1) создать таблицу jornal_C_arch, которая будет точной копией jornal_C. 2) из jornal_C переносить в jornal_C_arch все, что старше 7 дней (но можно сделать и ежедневно, т.е. переносить все старше 1 дня). 3) из jornal_C_arch удалять всё старше 120 дней. 4) из таблицы Cashm удалять всё старше 45 дней. С первым пунктом понятно. Просто создать новую таблицу в IBExpert, точную копию jornal_C, только пустую.. Потом подсказали написать хранимые процедуры, которые будут осуществлять удаление и копирование из таблиц.. Ну и, собственно, потом код на Delphi, в котором соответствующие процедуры будут вызываться.. В коде еще будет создание txt-файлов с логами (какого числа и во сколько сервис выполнил работу, успешно ли и т.д.) Вся проблема в том, что я не имел дела с базами данных и как-то не представляю, как должны выглядеть требуемые хранимые процедуры. Также хотелось бы наверняка узнать, как должно осуществляться обращение к ним из среды Delphi. Вроде бы это делается с помощью компонентов FIB+.. Вобщем, очень надеюсь, что кого-нибудь не сильно затруднит, так сказать, "разжевать" мне этот материал..)) Буду очень благодарен!
0
|
|
| 28.02.2012, 22:42 | |
|
Ответы с готовыми решениями:
7
Delphi и хранимые процедуры Связать хранимые процедуры InterBase-а с Delphi Вызов хранимой процедуры firebird из delphi |
|
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 7
|
|
| 28.02.2012, 23:33 [ТС] | |
|
Ну таково задание.. Я сейчас на практике, сказали делать, вот и делаю.)
К тому же там либо компы слабые, либо записей реально ОЧЕНЬ много. По крайней мере при попытке отсортировать данные одной таблицы в IBExpert (допустим по алфавиту), комп завис 500-тысячной записи и выдал ошибку.. К тому же хотелось бы и самому реально разобраться на конкретном примере, как будут выглядеть эти процедуры и их вызовы..
0
|
|
|
|
|||||||
| 29.02.2012, 00:15 | |||||||
![]() Вобщем, нужно понимать, что принципы работы с большими объемами данных совсем не те, что с малыми. И в первую очередь, следует ограничивать объем выборки, благо синтаксис SELECT позволяет (да и не одним способом). Ну и индексы, индексы, индексы... Добавлено через 5 минут вот фрагмент для размышлений:
0
|
|||||||
|
39 / 71 / 10
Регистрация: 03.02.2012
Сообщений: 362
|
||
| 29.02.2012, 01:02 | ||
Все правильно они делают. Сбрасывают устаревшие данные в архив. Зачем постоянно делать фулскан по миллиону если реально используется 10%? Не сравнивай куй с пальцем. Для Oracle и 10 миллионов фигня, а у них что? А тот запрос, что ты нацарапал белым мелом уложит им firebird. Тут надо удалять маленькими порциями или использовать утилиты экспорта/импорта. Если таковы имеются.
0
|
||
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|
| 29.02.2012, 02:47 | |
|
Я тоже придерживаюсь мнения perepe4a, ибо у самого был проект Где для расчетов использовались данные за 40 дней остальное все в историю. Джобы на каждый день.
Для ТС я бы сделал обратную операцию создал новую таблицу в нее дернул бы нужное. А старую таблицу переименовал в архив.
0
|
|
|
|
||||
| 29.02.2012, 08:11 | ||||
|
Добавлено через 1 минуту Добавлено через 8 минут Но моя позиция таже: не плодите сущностей. В моей практике эксплуатируется 5й год firebird-база на 3 гига (не гигант, но уже что-то). Практически в каждом запросе для отчетов соединяются 3 тяжелые таблицы: стотысячник, миллионик и четырехмиллионик. И это соединение (join), а не выборка из одной таблицы с фильтрацией. На скорость никто не жаловался: запросы отрабатывают за 0.5-1 сек. Индексы!
1
|
||||
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|
| 29.02.2012, 08:59 | |
|
0
|
|
| 29.02.2012, 08:59 | |
|
Помогаю со студенческими работами здесь
8
Создание хранимой процедуры, которая создает хранимые процедуры Создание процедуры из Delphi Хранимые процедуры Хранимые процедуры Хранимые процедуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|