bdd2

Обработка для работы с базой SQL

Опубликовал Алексей Растрепаев (rasdva) в раздел Программирование - Инструментарий

Часто возникает необходимость в обмене данными между 1С и SQL. При этом структура базы данных SQL, состав ее таблиц и полей неизвестны. Данная обработка помогает разобраться с содержанием и назначением таблиц и полей базы данных SQL. Обработка показывает список таблиц базы данных, для каждой таблицы количество полей и количество записей. Для каждой таблицы приведен список полей с типом значений, а также строки самой таблицы.

Обработка предоставляет следующие возможности:

  • применить фильтр к строкам таблицы;
  • скрыть пустые колонки таблицы;
  • произвести поиск значения по всем таблицам базы. Например, для поиска значения в других таблицах, для выявления взаимосвязей между таблицами базы;
  • откорректировать данные строки таблицы и записать их в базу данных SQL;
  • записать установленные назначение таблиц, назначение полей таблиц.
  • структуру Базы Данных можно вывести в отчет;
  • назначения таблиц и полей можно сохранить в файл, и восстановить из файла.

Обработка была написана с целью разобраться со структурой базы данных программы управления производством JobDispo, и создания обработки по обмену данными между 1С УПП и JobDispo.

Текст модулей обработки доступен.

Форма обработки. Закладка «Работа с таблицами».

Форма обработки приведена на Рисунке 1.

Таблица слева вверху «Таблицы» показывает полный перечень таблиц базы SQL. Таблица содержит колонки:

  • Номер таблицы – порядковый номер;
  • Отметка – пользователь может отметить таблицы, с данными которых будет вестись работа: чтение, поиск, фильтр, корректировка;
  • Имя таблицы – наименование таблицы SQL;
  • Назначение – это поле предназначено для указания пользователем описания, назначения данной таблицы;
  • Мощность таблицы – количество записей в таблице;
  • Порядок – количество полей таблицы;
  • Отбор – количество строк в таблице, содержащих значение поиска (при выполнении поиска значения);

Таблица справа вверху «Поля таблиц» содержит перечень полей текущей таблицы (на рисунке текущая таблица OR_PROJ, таблица «Поля таблиц» содержит перечень её полей). Таблица содержит колонки:

  • Номер поля – порядковый номер;
  • Отметка – пользователь может отметить поля, значения которых будут выводиться;
  • Имя поля – наименование поля, как оно названо в базе SQL;
  • Фильтр – в этой колонке можно указать значение, по которому будут отфильтрованы строки таблицы;
  • Тип – тип данных, которые содержатся в этой колонке;
  • Длина – длина для строковых и числовых значений;
  • Точность – для числовых значений количество знаков после запятой.

В нижней половине формы расположена таблица «Строки таблиц». В ней выведены строки текущей таблицы. В таблице показаны колонки, на которых установлена отметка в таблице «Поля таблиц». Строки выводятся с учетом установленных фильтров и отборов.

При переходе в таблице «Таблице» на другую таблицу, таблицы «Поля таблиц» и «Строки таблиц» будут заполнены данными текущей таблицы (на рисунке приведены строки таблицы OR_PROJ).

Форма обработки. Закладка «Подключение, сервис».

Форма обработки на закладке «Подключение, сервис» представлена на рисунке 2.

В группу «Параметры подключения» собраны параметры Базы Данных для подключения к базе SQL: Сервер, наименование базы, пользователь, пароль.

В группе «Подключение» расположены кнопки для подключения-отключения к базе SQL, и текст состояния подключения.

В группе «Назначения таблиц, полей» собраны реквизиты для сохранения назначения таблиц и полей в файл, и восстановления из файла.

В группе «Описание обработки» дана общая информация об обработке.

Чтение данных – заполнение списка таблиц.

Работа начинается с заполнения списка таблиц базы. Для заполнения списка таблиц и полей таблиц нужно нажать на кнопку «Заполнить» в панели инструментов таблицы «Таблицы» (вверху слева).

Обработка подключится к базе, прочитает информацию о структуре базы, заполнит таблицы «Таблицы» (вверху слева) и «Поля таблиц» (вверху справа).

При сохранении настройки (в режиме «Автосохранение настройки», или при сохранении настройки вручную) таблицы «Таблицы» и «Поля таблиц» запоминаются.

Колонки «Назначение» в таблицах предназначены для примечания, описания назначения.

Чтение данных – заполнение строк таблиц.

Для чтения самих данных нужно нажать на кнопку «Заполнить» панели инструментов таблицы «Строки таблиц».

Программа за один сеанс подключения прочитает все данные из помеченных таблиц (с отметкой в таблице «Таблицы»). После прочтения программа заполнит таблицу «Строки таблиц». В таблице будут выведены только колонки, отмеченные в таблице «Поля таблиц».

При переходе в таблице «Таблицы» на другую строку, таблицы «Поля таблиц» и «Строки таблиц» будут перезаполнены.

Реквизит «Максимальное количество строк таблицы» используется для ограничения количества строк для чтения из одной таблицы.

Работа с данными - фильтр, отбор, редактирование, и т.д.

Скрыть незаполненные колонки.

Часто бывает так, что таблица содержит множество колонок (более сотни), а данные содержатся лишь в нескольких. Для того, чтобы в таблице «Строки таблиц» скрыть пустые колонки, нужно нажать на кнопку «Скрыть незаполненные колонки». При этом программа снимет отметку в таблице «Поля таблиц» с полей, не содержащих данных, и заново заполнит таблицу «Строки таблиц».

Фильтр.

Для установки фильтра нужно задать значение по строке таблицы «Поля таблиц» в колонке «Фильтр».

Если переключатель установлен в режим «Фильтр», то при выборе двойным щелчком мыши на ячейке таблицы «Строки таблиц», значение из ячейки будет перенесено в таблицу «Поля таблиц» в колонку «Фильтр», и к строки таблицы «Строки таблиц» будут перезаполнены с учетом фильтра.

Корректировка данных базы SQL.

Для корректировки данных базы SQL нужно выполнить следующее:

  • установить переключатель в режим «Редактировать данные»;
  • изменить значения в таблице «Строки таблиц». Перечень измененных колонок выведен в колонке «Список изменений» (при режиме «Фильтр» при выборе ячейки устанавливается фильтр, при режиме «Редактировать данные» при выборе ячейки программа заходит в режим редактирования значения ячейки);
  • нажать на кнопку «Записать в базу SQL» - произойдет запись данных в базу SQL. При необходимости обработка выполнит подключение к базе SQL.

Поиск значения по всем таблицам.

Для поиска значения во всех таблицах нужно:

  • указать значение в реквизите «Значение поиска»;
  • если поиск требуется осуществить по полному совпадению, установить флаг «Точное соответствие», иначе поиск будет производиться по вхождению;
  • нажать на кнопку «Выполнить поиск». При этом будет произведен поиск во всех отмеченных таблицах, в отмеченных колонках. В таблице «Таблицы» будут выведены только таблицы, содержащие искомое значение. В таблице «Строки таблиц» будут выведены только строки, содержащие искомое значение.

При нажатии на кнопку «Снять отбор» режим поиска будет снят.

Эта функция полезна для определения связей между таблицами.

Сохранение назначения в файл, восстановление назначения из файла.

Установленные при анализе назначения таблиц и колонок можно сохранить в файл, восстановить из файла. Конечно, эта информация сохраняется и при сохранении настроек, но только при условии нормального завершения программы и сохранения информации в хранилище. А при сохранении в файл информация гарантированно сохранится. Плюс этого еще и в том, что установленные назначения можно переслать, восстановить.

Сохранение в файл и восстановление из файла производится на закладке «Подключение, сервис» соответствующими кнопками «Сохранить…», «Загрузить…».

Печать структуры базы.

Структуру Базы Данных можно вывести в отчет. Для этого нажать на кнопку «Печать описания структуры Базы Данных».

Заключение.

Тему и функциональность обработки можно развивать.

Обработка вполне соответствует поставленным целям, свою задачу выполнила.

Обработка писалась для определения структуры базы программы для планирования производства JobDispo, и для создания обработки по обмену данными между УПП и JobDispo.

Скачать файлы

Наименование Файл Версия Размер
Обработка Работа с SQL
.epf 29,98Kb
20.12.16
34
.epf 29,98Kb 34 Скачать
Инструкция к обработке Работа с SQL.
.docx 195,00Kb
20.12.16
14
.docx 195,00Kb 14 Скачать

См. также

Добавить вознаграждение
Комментарии
1. DAnry (DAnry) 3 21.12.16 18:08 Сейчас в теме
Интересная тема! Особенно в плане "разобраться с содержанием и назначением таблиц и полей базы данных SQL" для котрой "структура базы данных SQL, состав ее таблиц и полей неизвестны". К сожалению не могу скачать.
2. Олег Дмитров (baracuda) 2 22.12.16 09:30 Сейчас в теме
А зачем это может пригодиться, если есть Management Studio.
3. Женька Ture (ture) 537 22.12.16 10:37 Сейчас в теме
Миллион лет назад уже редактирование и просмотр сырца с SQL:
http://infostart.ru/public/118593/
4. DAnry (DAnry) 3 22.12.16 11:38 Сейчас в теме
(2)Вы не правы. Мне, например, удобнее пользоваться обработкой 1С. Очень полезная и удобная обработка. Автору +.
5. Дмитрий (user636219_dmitriy.gomzin) 22.12.16 11:42 Сейчас в теме
Если в колонке SQL хранится UID есть возможность отобразить его в виде объекта 1С?
6. vasja ivanov (vasja_yar) 22.12.16 12:12 Сейчас в теме
(2)А Вы там сами смогли разобраться)))
7. Алексей Растрепаев (rasdva) 27 22.12.16 12:39 Сейчас в теме
(5) Хорошая идея. Сейчас такого нет.
8. Яков Коган (Yashazz) 1940 24.12.16 19:18 Сейчас в теме
(7) Берёте Toad for SQL и всё у вас есть))) А так - опять же, баян, таких обработок куча. Но респект за труды.
9. Алексей Растрепаев (rasdva) 27 26.12.16 14:00 Сейчас в теме
(8) Основное назначение данной обработки - выяснить содержание таблиц и полей, записать его, и сохранить в файл. Этот файл описаний можно восстановить на другом рабочем месте. Самая главная сложность при работе с SQL - разобраться, в какой таблице какие данные хранятся, это является ключом к базе. Например, в базе программы JobDispo 89 таблиц, содержащих по 200-300 полей. При настройке обмена с 1С УПП главный вопрос состоял в том, чтобы разобраться в какой из этих таблиц что хранится. А уже имея описание можно строить любые отчеты и запросы, используя любую среду, хоть Crystal Reports, хоть SQL Server Management Studio, хоть Toad for SQL.
10. Алексей 1 (AlX0id) 28.12.16 09:11 Сейчас в теме
Про внешние источники данных никто еще не упоминал? Я первый буду )