Якщо у вас є проблеми з відкриттям в Database Tour текстового або CSV-файлу або його структура полів відрізняється від очікуваної, це, ймовірно, означає, що для цього файлу відсутня схема, яка описує структуру полів, або ця схема некоректно створена. В подібних випадках вам потрібно створити або змінити схему. Ми рекомендуємо завжди створювати схеми для текстових таблиць, особливо для великих таблиць із багатьма записами і полями.

Схеми розміщуються в окремих файлах (файлах схем), тому створення, вилучення та зміна схеми не змінюють сам текстовий або CSV-файл (файл даних). Якщо файл даних не має відповідного файла схеми, то схема будується в пам'яті з використанням замовчань, що може бути небажаним в багатьох випадках.

Файли схем є звичайними текстовими файлами і повинні бути розміщені в тій же теці, де знаходяться файли з даними. Для з'єднань BDE файл схеми повинен мати таку ж назву, як і файл з даними, але мати розширення .SCH. Для з'єднань ADO схеми всіх файлів з певної теки містяться в одному файлі, що називається Schema.ini. Додаткову інформацію про створення схем читайте в документації до вашого движка баз даних.

Зауваження

  • Рекомендується, щоб файли даних не містили символів переводу каретки всередині полів, бо ці символи використовуються для ідентифікації записів текстової таблиці. Іноді, щоправда, коректне взяття таких даних в лапки може допомогти.
  • Для з'єднань BDE файл даних повинен закінчуватися символом переводу каретки.

Схеми можна створювати, вилучати або редагувати в Database Tour, на закладці Схеми. Досвідчені користувачі для цих цілей можуть також використовувати будь-який текстовий редактор.

Для створенння, редагування або вилучення схеми для певної текстової або CSV-таблиці відкрийте в Database Tour теку, що містить даний файл.

Створення схеми вручну

Схему можна створити у будь-якому текстовому редакторі, використовуючи приклади нижче.

Створення схеми з використанням інтерфейсу

Перейдіть на закладку Схеми Навігатора об'єктів. Клацніть кнопку Створити. З'явиться нове вікно зі списком всіх таблиць поточної бази даних, для яких немає схем. Виберіть потрібну таблицю і клацніть OK. З'явиться нове вікно, в якому ви можете в зручному візуальному режимі створити схему і подивитися, як це вплине на відображення даних таблиці.

 або

Клікніть потрібний файл зі списку таблиць. Якщо він ще не має схеми і якщо відповідна опція увімкнена, з'явиться запит від програми на створення схеми. Якщо ви виберете Так, буде показано інтефрейс створення схеми, де можна в кілька кліків налаштувати схему:

Creating Text Schema

Якщо ваш файл даних використовує певний символ для розділення полів, то все, що вам необхідно зробити, - це впевнитися, що розділювач полів та обмежувач полів (якщо є) вибрані коректно, і потім налаштувати розміри та назви окремих полів в блоці праворуч, вибираючи поля один за одним в нижній таблиці.

Якщо файл даних використовує поля фіксованої довжини, то рекомендується наступна послідовність дій:

  1. Вимкніть опцію Перший запис містить назви полів.
  2. Вкажіть загальну кількість полів за допомогою кнопки '...'.
  3. Виберіть в нижній таблиці першу колонку і скоригуйте її ширину в символах або пересуваючи праву межу колонки мишкою, або просто вкажіть розмір у блоці праворуч. У блоці праворуч виберіть потрібний тип поля. Повторіть ці дії для другого поля і т.д.
  4. Увімкніть опцію Перший запис містить назви полів, якщо потрібно.
  5. Клікніть першу колонку і перевірте її назву поля в блоці праворуч. Повторіть для інших колонок.

Примітка: Ви також можете створити схему повністю автоматично при експортуванні даних до CSV чи текстового файлу.

Редагування існуючої схеми

Хоча створення схем можливо в зручному візуальному режимі, редагування існучої схеми можливе лише в текстовому режимі.

Перейдіть на закладку Схеми. Виберіть потрібну схему зі списку схем. Схема відкриється в правій панелі. Перейдіть до закладки Скрипт і клацніть кнопку Копіювати до редактора. Відкоригуйте схему в редакторі і клацніть кнопку Записати в файл.

Вилучення схеми

Перейдіть на закладку Схеми. Виберіть потрібну схему зі списку схем і клацніть кнопку Вилучити або натисніть Delete.

Приклади схем

Приклад 1

Поля в файлі даних розділені символом (|).

Вміст файла даних (programs.txt):

1|Database Tour|www.databasetour.net|6848
2|Database Tour Pro|www.databasetour.net|7232
3|Exportizer|www.vlsoftware.net/exportizer|4267
4|Exportizer Pro|www.vlsoftware.net/exportizer|5699
5|Exportizer Enterprise|www.vlsoftware.net/exportizer|5742
6|Icons from File|www.vlsoftware.net/icons-from-file|1890
7|Rename Us|www.vlsoftware.net/rename-us|3166
8|Rename Us Pro|www.vlsoftware.net/rename-us|4581
9|Free Renju|www.vlsoftware.net/free-renju|404
10|Logical Crossroads|www.vlsoftware.net/logical-crossroads|522
11|Hanoi Towers|www.vlsoftware.net/hanoi-towers|99
12|Reportizer|www.reportizer.net|6211

Як даний файл виглядає в програмі без схеми (з'єднання ADO):

TТекстова таблиця без схеми

Вміст файлів схем:

Схема BDE (programs.sch):

[programs]
CHARSET = ASCII
FILETYPE = VARYING
DELIMITER = |
Field1 = ID,NUMBER,18,0,0
Field2 = NAME,CHAR,30,0,18
Field3 = URL,CHAR,50,0,48
Field4 = SIZEKB,NUMBER,18,0,98

Схема ADO (Schema.ini):

[programs.txt]
ColNameHeader=False
Format=Delimited(|)
CurrencyThousandSymbol=
CurrencyDecimalSymbol=.
DecimalSymbol=.
TextDelimiter=
MaxScanRows=25
CharacterSet=ANSI
Col1=ID Integer Width 18
Col2=NAME Char Width 30
Col3=URL Char Width 50
Col4=SIZEKB Integer Width 18

Як даний файл виглядає в програмі зі схемою:

Текстова таблиця зі схемою

Приклад 2

Поля в файлі даних розділено комами. Дані полів, в яких присутні коми, обмежені лапками.

Вміст файла даних (PAYMENT.txt):

1,1,2/7/2017,300
2,4,2/8/2017,3467.35
3,5,3/20/2017,21.89
4,6,3/20/2017,250.5
5,7,4/26/2017,121
6,2,5/2/2017,19
7,3,5/4/2017,1457
8,11,9/17/2022,333
9,11,9/17/2022,333
10,11,9/17/2022,333

Як даний файл виглядає в програмі без схеми (з'єднання BDE):

Текстова таблиця (розділювачі полів - коми) без схеми

Вміст файлів схем:

Схема BDE (PAYMENT.sch):

[PAYMENT]
CHARSET = ASCII
FILETYPE = VARYING
QuoteChar ="
SEPARATOR =,
Field1 = PAYMENT_ID,NUMBER,18,0,0
Field2 = CUSTOMER_ID,NUMBER,18,0,18
Field3 = PAYMENT_DATE,CHAR,20,0,36
Field4 = PAYMENT_SUM,FLOAT,20,2,56

Схема ADO (Schema.ini):

[PAYMENT.txt]
ColNameHeader=False
Format=CSVDelimited
CurrencyThousandSymbol=
CurrencyDecimalSymbol=.
DecimalSymbol=.
TextDelimiter=
MaxScanRows=25
CharacterSet=ANSI
Col1=PAYMENT_ID Float Width 20
Col2=CUST_ID Float Width 20
Col3=PAY_DATE Date Width 20
Col4=PAY_SUM Float Width 20

Як даний файл виглядає в програмі зі схемою:

Текстова таблиця (розділювачі полів - коми) зі схемою

Приклад 3

Поля в файлі даних мають фіксовану ширину.

Вміст файла даних (customer.txt):

1                   Sandra      Bush            Portland        United States   
2                   Eric        Miles           Edmonton        Canada          
3                   Berndt      Mann            Hamburg         Germany         
4                   Marek       Przybylsky      Krakow          Poland          
5                   John        Hladni          Bedford         United States   
6                   Bogdan      Vovchenko       Kyiv            Ukraine         
7                   Paul        Vogel           Hamburg         Germany   

Як даний файл виглядає в програмі без схеми (з'єднання ADO):

Текстова таблиця (поля фіксованої довжини) без схеми

Вміст файлів схем:

Схема BDE (customer.sch):

[customer]
CHARSET = ASCII
FILETYPE = FIXED
Field1 = ID,FLOAT,20,2,0
Field2 = FIRSTNAME,CHAR,12,0,20
Field3 = LASTNAME,CHAR,16,0,32
Field4 = CITY,CHAR,16,0,48
Field5 = COUNTRY,CHAR,16,0,64

Схема ADO (Schema.ini):

[customer.txt]
ColNameHeader=False
Format=FixedLength
FixedFormat=RaggedEdge
MaxScanRows=25
CharacterSet=ANSI
Col1=ID Float Width 20
Col2=FIRSTNAME Char Width 12
Col3=LASTNAME Char Width 16
Col4=CITY Char Width 16
Col5=COUNTRY Char Width 16

Як даний файл виглядає зі схемою:

Текстова таблиця (поля фіксованої довжини) зі схемою