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

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

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

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

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

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

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

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

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

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

Creating Text Schema

Примітка: Ви також можете створити схему автоматично при експортуванні даних до 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

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

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