Якщо у вас є проблеми з відкриттям в Database Tour текстового або CSV-файлу або його структура полів відрізняється від очікуваної, це, ймовірно, означає, що для цього файлу відсутня схема, яка описує структуру полів, або ця схема некоректно створена. В подібних випадках вам потрібно створити або змінити схему. Ми рекомендуємо завжди створювати схеми для текстових таблиць, особливо для великих таблиць із багатьма записами і полями.
Схеми розміщуються в окремих файлах (файлах схем), тому створення, вилучення та зміна схеми не змінюють сам текстовий або CSV-файл (файл даних). Якщо файл даних не має відповідного файла схеми, то схема будується в пам'яті з використанням замовчань, що може бути небажаним в багатьох випадках.
Файли схем є звичайними текстовими файлами і повинні бути розміщені в тій же теці, де знаходяться файли з даними. Для з'єднань BDE файл схеми повинен мати таку ж назву, як і файл з даними, але мати розширення .SCH. Для з'єднань ADO схеми всіх файлів з певної теки містяться в одному файлі, що називається Schema.ini. Додаткову інформацію про створення схем читайте в документації до вашого движка баз даних.
Зауваження
- Рекомендується, щоб файли даних не містили символів переводу каретки всередині полів, бо ці символи використовуються для ідентифікації записів текстової таблиці. Іноді, щоправда, коректне взяття таких даних в лапки може допомогти.
- Для з'єднань BDE файл даних повинен закінчуватися символом переводу каретки.
Схеми можна створювати, вилучати або редагувати в Database Tour, на закладці Схеми. Досвідчені користувачі для цих цілей можуть також використовувати будь-який текстовий редактор.
Для створенння, редагування або вилучення схеми для певної текстової або CSV-таблиці відкрийте в Database Tour теку, що містить даний файл.
Створення схеми вручну
Схему можна створити у будь-якому текстовому редакторі, використовуючи приклади нижче.
Створення схеми з використанням інтерфейсу
Перейдіть на закладку Схеми Навігатора об'єктів. Клацніть кнопку Створити. З'явиться нове вікно зі списком всіх таблиць поточної бази даних, для яких немає схем. Виберіть потрібну таблицю і клацніть OK. З'явиться нове вікно, в якому ви можете в зручному візуальному режимі створити схему і подивитися, як це вплине на відображення даних таблиці.
або
Клікніть потрібний файл зі списку таблиць. Якщо він ще не має схеми і якщо відповідна опція увімкнена, з'явиться запит від програми на створення схеми. Якщо ви виберете Так, буде показано інтефрейс створення схеми, де можна в кілька кліків налаштувати схему:

Якщо ваш файл даних використовує певний символ для розділення полів, то все, що вам необхідно зробити, - це впевнитися, що розділювач полів та обмежувач полів (якщо є) вибрані коректно, і потім налаштувати розміри та назви окремих полів в блоці праворуч, вибираючи поля один за одним в нижній таблиці.
Якщо файл даних використовує поля фіксованої довжини, то рекомендується наступна послідовність дій:
- Вимкніть опцію Перший запис містить назви полів.
- Вкажіть загальну кількість полів за допомогою кнопки '...'.
- Виберіть в нижній таблиці першу колонку і скоригуйте її ширину в символах або пересуваючи праву межу колонки мишкою, або просто вкажіть розмір у блоці праворуч. У блоці праворуч виберіть потрібний тип поля. Повторіть ці дії для другого поля і т.д.
- Увімкніть опцію Перший запис містить назви полів, якщо потрібно.
- Клікніть першу колонку і перевірте її назву поля в блоці праворуч. Повторіть для інших колонок.
Примітка: Ви також можете створити схему повністю автоматично при експортуванні даних до 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):
Вміст файлів схем:
Схема 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
Як даний файл виглядає зі схемою: