RUS  ENG 

База данных. Создание запросов

Страницы: 1
RSS
База данных. Создание запросов
 
Добрый день.
Я создала в участках (тепловые сети) базу данных "Журнал повреждений". Необходимо, чтобы при нажатии на участок и выборе формы "Журнал повреждений" в базе данных отображалась основная информация об участке (наименования начала и конца участка, диаметр, протяжённость).
Как мне объединить в запросах эти таблицы (журнал повреждений и основная таблица)?
Изменено: Carina - 05.12.2018 14:39:57
 
Я разобралась с данным вопросом.
Но теперь возникла следующая проблема - если работаю на сервере, то выскакивает ошибка "Не выполнить запрос. Не допускается использование в запросе таблиц из разных источников ADO или совместно из источников ADO и BDE".
Если в локальной версии, то всё работает без ошибок.
 
Carina, обычно такая ошибка возникает, если в запросе используются таблицы из разных источников или соединений. Однако, в этом случае и в локальном режиме должна быть та же ошибка. Нужны подробности, какая в итоге получилась структура запроса, какая операция выдаёт ошибку.
 
Да, я уже разобралась в чём причина. Существующие базы данных на сервере в Парадоксе. Новые (и локальные, и серверные) я создаю в SQLite.
Как всё перевести в SQLite?
 
Carina, можно воспользоваться "мастером переноса данных":
https://www.politerm.com/zuludoc/index.html#zb_migratedata_overview.html
 
Дмитрий Озеров, у меня возникла новая проблема. Мы обновили Zulu (теперь дата сборки от 11.12.18, ранее была от 2017 года). Теперь при добавлении записей в формах выскакивает данное сообщение. Ранее всё работало без проблем.



Если из запроса удалить связь с основной таблицей, то при добавлении записи выскакивает данное окно.
Изменено: Carina - 18.12.2018 10:59:44
 
Carina,
Обычно, первое сообщение возникает потому, что есть связь один-к-одному между таблицами и при добавлении записи заполнены данные только в одной таблице, и, если не заполнить поле связи с другой таблицей нарушится целостность данных. Поэтому с некоторых пор программа требует выбрать данные из соответствующей подчинённой таблицы, чтобы не нарушать эту целостность.
Второй сообщение обычно возникает потому, что есть ключевое поле, не являющееся полем связи с картой. При добавлении записи необходимо задать значение этого поля и программа для целых числовых полей "придумывает" такое значение и предлагает.
 
Цитата
Дмитрий Озеров написал:
Carina,
Второй сообщение обычно возникает потому, что есть ключевое поле, не являющееся полем связи с картой. При добавлении записи необходимо задать значение этого поля и программа для целых числовых полей "придумывает" такое значение и предлагает.

Дмитрий Озеров,подскажите, пожалуйста, как это разрешить.
Изменено: Carina - 18.12.2018 14:06:37
 
Carina, у нас сейчас стоит в планах сделать это подобранное значение автоматическим (без дополнительного диалога).
Сейчас варианта два: либо Sys_d должно быть счётчиком (возможность есть напр. в Microsoft Access, Microsoft SQL Server), либо потерпеть, что будет спрашиваться подтверждение нового значения.
 
Дмитрий Озеров, спасибо, в Microsoft Access сработало без проблем.
На данный момент у нас все слои на сервере созданы в Microsoft Access. Я думала, что стоит их переносить в SQL, но видимо не сейчас, потому что необходимо внести довольно большой объем информации. На основании чего возникло ещё два вопроса:
1. С какими в дальнейшем можно столкнуться с проблемами, если так и работать в Microsoft Access? Или нет разницы?
2. Постоянное внесение статистических данных, не участвующих в расчётах, как-то влияет на скорость расчётов (наладочный, поверочный)?
 
Carina,
1. При использовании ZuluServer мы не рекомендуем Microsoft Access, он не рассчитан на серверный вариант использования. Лучше остановиться на Microsoft SQL Server, особенно если речь идёт о большом объёме данных.
2. Обилие прочих данных на сам расчёт не влияют, но они могут влиять на скорость выборки и обновления расчётных данных.
 
Сейчас, кстати, есть бесплатная версии Microsoft SQL Server Express Edition, и, кроме этого, мы поддерживаем Microsoft SQL Server Express LocalDB - ядро SQL Server для локального использования без развёртывания полноценного сервера. Оба варианта подходят для ZuluServer.
 
Добрый день.
Можно ли через раскраску или через запрос отобразить участки, где в форме (например, повреждения) добавлено несколько записей? Например, больше 3.
 
Carina, можно сделать так:
  1. Выполнить SQL запрос:
    Код
    SELECT Sys, COUNT([поле-формы-повреждения]) FROM [Слой]
    GROUP BY Sys
    HAVING COUNT([поле-формы-повреждения]) > 3
    

  2. Выделить результат на карте
 
Добрый день!
Возможно ли сделать перемещение добавленных записей внутри формы? Или чтобы можно было добавлять новую запись произвольно? В настоящее время запись добавляется автоматически в конце.
 
Carina, если речь идёт о полях во вкладке Текущая запись, то их порядок можно менять в редакторе запроса (в рамках редактора базы данных).
 
Цитата
Дмитрий Озеров написал:
Carina, если речь идёт о полях во вкладке Текущая запись, то их порядок можно менять в редакторе запроса (в рамках редактора базы данных).
Я имею ввиду не поля, а сами записи. Не всегда есть возможность заполнять записи в хронологическом порядке.
 
Carina, добрый день!
У записей в БД нет понятие "положение", поэтому произвольно их невозможно менять местами.
Записи можно только отсортировать по какому-либо полю.
Вы можете выбрать такое поле из имеющихся, или добавить новое специально для задания порядка.
 
Добрый день!
Как получить сумму произведения 2-полей через запрос к БД?
Например, чтобы вычислить время прохождения потока через связанные участки, умножаем скорость потока на длину участка и затем все суммируем.
Изменено: SerPa - 16.07.2019 15:47:56
 
SerPa, можно посчитать через SQL запрос, например:
Код
SELECT SUM([Скорость движения воды в под.тр-де, м/с]*[Длина участка, м]) FROM [Пример квартальной тепловой сети]
 
Это понятно, через SQL работает, а вот именно через запрос к БД не пойму как сделать.
Простые запросы удобнее через БД, т.к. не всекий пользователь умеет составлять запросы SQL.
Например в строке со "*" написать СУММА (F1*F2) намного проще и удобнее чем писать запрос в SQL c кучей условий.
Изменено: SerPa - 17.07.2019 12:18:08
 
SerPa, да, если через закладку Запрос, то так логично было бы писать, но пока это не реализовано. Доделаем.
Страницы: 1