-
Добрый день!
При использовании акцесса и драйвера jet столкнулся с проблемой: при выполнении сложного запроса, в котором union`ом объединены 9 запросов, в свою очередь состоящих из 6 подзапросов - система грит, что недостаточно ресурсов. Если уменьшить до 8 - "слишком сложный вопрос", на 7 только запускается.
Прога написана с испольpованием ADO. Подскажите, плиз, на что можно сменить акцесс, чтобы новая база: 1) оперировала со сложными запросами 2) поддерживала триггеры - щас этого не хватает жутко 3) при инсталяции моей проги не требовалось бы устанавливать куси других программ (серверов или еще что).
Заранее спасибо.
-
> yurikon (15.09.2010 13:59:00) [0]
На MSSQL, кстати неплохо интегрируется с Акцесс.
-
FireBird. Но сначала я бы поразбирался с проектированием БД. Повесить и Оракл не сложно.
-
Спасибо, за советы.
Разгрузил запрос, вынеся часть столбцов в вычисляемые поля.
Подскажите плиз еще момент. Можно ли в акцессе реализовать нечто похожее на триггер - как узнать из делфи, изменилась ли таблица, не переоткрывая ее? Может есть какие то флаги, типа время последнего изменения.
С уважением, Юрий.
-
> [3] yurikon (16.09.10 11:09)
У тебя я так понял однопользовательская система. Т.е. все изменения делает твоя программа. Значит она и должна знать - изменила она что то или нет.
-
> yurikon (16.09.2010 11:09:03) [3]
Можно но только в Акцессе с помощью VBA
-
> Можно ли в акцессе реализовать нечто похожее на триггер > - как узнать из делфи, изменилась ли таблица
В MSSQL можно и триггер для этого не требуется, там есть специальный тип для изменений TIMESTAMP
-
База внешняя, в таблице со временем добавляются строки. Сейчас, чтобы узнать, появилась новая строка ли нет, приходится переоткрывать таблицу или запрос. Тут акцесс уже есть и его поменять никак.
Есть еще внутренняя база, в нее тоже по одбс идет инфа из вне. Вот ее тип я могу выбирать.
А есть у базы в акцессе как у файла время последнего изменения?
С уважением, Юрий.
-
> yurikon (16.09.2010 14:25:07) [7]
Нет
-
> [7] yurikon (16.09.10 14:25) > Сейчас, чтобы узнать, появилась новая строка ли нет, приходится > переоткрывать таблицу или запрос.
От этого одни хрен никуда не уйдешь по большому счету. Остается оптимизировать переоткрываемый запрос.
-
Позвольте еще один вопрос по работе с базами в дельфи, хотя он уже не в тему топика.
Сейчас я использую TADOQuery для выполнения запросов. Как мне из одного запроса сделать ссылку на другой?
Например:
SELECT * FROM <другой запрос>
Сейчас я делаю так:
'SELECT * FROM (' + Query1.SQL.Text + ' )'
как-то криво это. Да и запрос лишний раз выполняется, если он уже открыт.
С уважением.
|