Kexi/Tutorials/Importing SQLite database into Kexi/uk: Difference between revisions

    From KDE UserBase Wiki
    (Created page with "Переконайтеся, що вставлено усі 52 стовпчики у компонуванні таблиці ''archive'', і що усі ці дані прав...")
    (Created page with "7. Поки у файлі ''oaklandweather.kexi'' немає даних. Але ми готові виконати останню команду для імпортуванн...")
    Line 108: Line 108:
    Файл Kexi без даних, для порівняння, можна отримати [http://kexi-project.org/download/tests/oaklandweather-empty.kexi тут].
    Файл Kexi без даних, для порівняння, можна отримати [http://kexi-project.org/download/tests/oaklandweather-empty.kexi тут].


    7. So far the ''oaklandweather.kexi'' file has no data in it. Now you may be ready to execute the final command to import the data. In the Konsole terminal enter to the directory where the ''oaklandweather.sdb'' and ''oaklandweather.kexi'' files exist or add proper paths to them. Then type (or paste) the command:
    7. Поки у файлі ''oaklandweather.kexi'' немає даних. Але ми готові виконати останню команду для імпортування даних. У емуляторі термінала Konsole перейдіть до каталогу, де зберігаються файли ''oaklandweather.sdb'' та ''oaklandweather.kexi'' або вкажіть належні шляхи до цих файлів. Далі, введіть (або вставте) таку команду:


      sqlite3 oaklandweather.sdb .dump | egrep -e "^(BEGIN|INSERT|ANALYZE|COMMIT)" | sqlite3 oaklandweather.kexi
      sqlite3 oaklandweather.sdb .dump | egrep -e "^(BEGIN|INSERT|ANALYZE|COMMIT)" | sqlite3 oaklandweather.kexi

    Revision as of 12:58, 19 May 2019

    Other languages:

    Зауваження

    Цим підручником можна скористатися для роботи з Kexi 2.x та новішими версіями. Автором підручника є Jarosław Staniek (обговорення).


    Підручник було створено для задоволення запиту щодо допомоги на форумі Kexi. Будемо раді будь-яким коментарям у відповідній гілці обговорення.

    Зауваження: існує і альтернативний підхід: https://forum.kde.org/viewtopic.php?f=220&t=139243

    Вступ

    За допомогою цього підручника ви зможете ознайомитися з процедурою перетворення файла вхідних даних, oaklandweather.sdb, у стандартному форматі SQLite3 з однією таблицею даних і створити проект бази даних, яким можна буде скористатися за допомогою Kexi.

    Файл вхідних даних SQLite3 можна отримати звідси (стиснуто до 600 кБ за допомогою xz, містить загальнодоступні дані).

    Кроки

    1. У вікні емулятора термінала Konsole скористайтеся консольною програмою sqlite3 для перегляду схеми (програма з графічним інтерфейсом, Sqliteman, не здатна показувати схеми):

    sqlite3 oaklandweather.sdb
    

    2. Далі, введіть команду:

    .schema
    

    3. У відповідь буде показано схему для однієї таблиці archive:

    CREATE TABLE archive (
       dateTime INTEGER NOT NULL UNIQUE PRIMARY KEY,
       usUnits INTEGER NOT NULL,
       interval INTEGER NOT NULL,
       barometer REAL,
       pressure REAL,
       altimeter REAL,
       inTemp REAL,
       outTemp REAL,
       inHumidity REAL,
       outHumidity REAL,
       windSpeed REAL,
       windDir REAL,
       windGust REAL,
       windGustDir REAL,
       rainRate REAL,
       rain REAL,
       dewpoint REAL,
       windchill REAL,
       heatindex REAL,
       ET REAL,
       radiation REAL,
       UV REAL,
       extraTemp1 REAL,
       extraTemp2 REAL,
       extraTemp3 REAL,
       soilTemp1 REAL,
       soilTemp2 REAL,
       soilTemp3 REAL,
       soilTemp4 REAL,
       leafTemp1 REAL,
       leafTemp2 REAL,
       extraHumid1 REAL,
       extraHumid2 REAL,
       soilMoist1 REAL,
       soilMoist2 REAL,
       soilMoist3 REAL,
       soilMoist4 REAL,
       leafWet1 REAL,
       leafWet2 REAL,
       rxCheckPercent REAL,
       txBatteryStatus REAL,
       consBatteryVoltage REAL,
       hail REAL,
       hailRate REAL,
       heatingTemp REAL,
       heatingVoltage REAL,
       supplyVoltage REAL,
       referenceVoltage REAL,
       windBatteryStatus REAL,
       rainBatteryStatus REAL,
       outTempBatteryStatus REAL,
       inTempBatteryStatus REAL
    );
    

    4. Цю таблицю слід відтворити вручну за допомогою Kexi так, щоб вона якомога точніше збігалася з початковою таблицею. На жаль, іншого способу немає — це доволі велика таблиця.

    Для цього вам слід створити новий порожній проект бази даних за допомогою Kexi. Надайте проектові назву oaklandweather, щоб файл проекту Kexi називався oaklandweather.kexi. Не закривайте вікна проекту Kexi.

    5. У проекті oaklandweather.kexi розпочніть створення нової таблиці.

    • Введіть назву кожного зі стовпчиків зі схеми, наданої на кроці 3.
    • Скористайтеся редактором властивостей, панель якого розташовано праворуч, щоб визначити для кожного зі стовпчиків у цій таблиці відповідний тип даних.
      • Для типів INTEGER, наприклад dateTime INTEGER у нашій схемі, виберіть тип «Ціле число» у полі «Тип даних» на панелі Дизайнера таблиць.
      • Для типів REAL, наприклад barometer REAL у нашій схемі, виберіть тип «Число з рухомою комою» у полі «Тип даних» стовпчика на панелі Дизайнера таблиць.
    • Крім того, встановіть стовпчик dateTime як основний стовпчик ключа для таблиці на панелі Редактора властивостей.
    • Також для стовпчиків usUnits та interval має бути призначено специфікацію NOT NULL. Щоб призначити цю специфікацію у Kexi, встановіть властивість «Обов'язкова» у значення «Так»для цих стовпчиків на панелі Редактора властивостей.


    Зауваження

    Підказка: у Linux ви можете скопіювати назви стовпчиків трохи швидше, якщо двічі клацнете на назві у схемі таблиці, наведеній вище, двічі клаценет на наступній порожній комірці у стовпчику «Заголовок поля» на панелі дизайнера таблиць, а потім клацнете середньою кнопкою (коліщатком), щоб вставити раніше позначений текстовий фрагмент.


    Зауваження

    У Kexi таблицю можна створити за допомогою текстового редактора та команди SQL, але цей спосіб може бути зручнішим лише для досвідчених користувачів. Якщо ви цікавитеся цим питанням, будь ласка, повідомте про це на сторінці обговорення.


    6. Збережіть компонування таблиці із заголовком Archive. Назву фізичної таблиці буде визначено у Kexi як archive, що відповідає назві тбалиці у файлі oaklandweather.sdb.

    Зауважте, що після збереження компонування ви знову можете відкрити його для редагування. Єдиною проблемою може бути те, що після збереження зміненого компонування таблиці ви втратите усі дані у ній, якщо такі були. Тому варто переконатися, що компонування таблиці є ідеальним, перш ніж вставляти будь-які дані до таблиці.

    Переконайтеся, що вставлено усі 52 стовпчики у компонуванні таблиці archive, і що усі ці дані правильно впорядковано і пов'язано із належним типом. Будь-які помилки можуть призвести до того, що таблиця archive буде непрацездатною у Kexi.

    Щойно усі описані дії буде виконано, ви можете закрити вікно програми Kexi.

    Файл Kexi без даних, для порівняння, можна отримати тут.

    7. Поки у файлі oaklandweather.kexi немає даних. Але ми готові виконати останню команду для імпортування даних. У емуляторі термінала Konsole перейдіть до каталогу, де зберігаються файли oaklandweather.sdb та oaklandweather.kexi або вкажіть належні шляхи до цих файлів. Далі, введіть (або вставте) таку команду:

    sqlite3 oaklandweather.sdb .dump | egrep -e "^(BEGIN|INSERT|ANALYZE|COMMIT)" | sqlite3 oaklandweather.kexi
    

    Це працює ось так:

    • Reports the oaklandweather.kexi file to a so-caled SQL dump (a text representation) using the sqlite3 console app.
    • Removes from this dump any lines that do not begin with BEGIN, INSERT, ANALYZE or COMMIT. This is needed because we are only interested in data of the table, not in creating a new table.
    • Directs the resulting output to a sqlite3 console app again, which receives all the commands from the output and applies them to the oaklandweather.kexi database file. The last command applied is COMMIT.


    8. Готово! Ви можете відкрити файл проекту бази даних oaklandweather.kexi у Kexi, відкрити таблицю 'archive' і бачити усі дані.


    Файл-результат роботи Kexi можна отримати тут (стиснено до 650 кБ за допомогою xz).