Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Microsoft dBase-драйвер создает файл DBF с неверным именем поля / 2 сообщений из 2, страница 1 из 1
13.02.2007, 12:40
    #34326742
klion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft dBase-драйвер создает файл DBF с неверным именем поля
Добрый день!

Мне необходимо с помощью ODBC драйвера создать таблицу формата dBase III.
Некоторые имена столбцов ДОЛЖНЫ начинаться с символа '_' (подчёркивание).
Использую стандартный драйвер Microsoft dBase Driver (*.dbf) в WinXP SP2 (и в SP1 было тоже самое).
Делаю SQL-запрос:
Код: plaintext
1.
CREATE TABLE test5 ("NAME_1" Char( 20 ), "_NAME_2" Char( 64 ));
В результате получаю таблицу TEST5.DBF с именами полей:
"NAME_1" и " X NAME_2"!

Главное, что символ подчёркивания подменяется только, если стоит в начале имени.
В середине имени - всё ОК.
Причём, если уже существует таблица (файл DBF) с именами полей, начинающимися с '_', то всё работает без символов 'X'.
Пробовал устанавливать в свойствах источника данных тип dBase III, dBase IV и dBase V -
не помогает.

Мой вопрос:
Как обойти такое ограничение в первом символе подчёркивания?
Если использовать другой драйвер, то какой?
Как создать через ODBC DBF-файл с именами полей, которые могут начинаться с символа подчёркивание?

Риторический вопрос:
Зачем Microsoft для dBase драйвера сделали символ '_' в качестве
SQL_SPECIAL_CHARACTERS="~`@#$%^&* _ -+=\}{"';:?/><,.!'[]|"?
...
Рейтинг: 0 / 0
14.02.2007, 05:59
    #34328845
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft dBase-драйвер создает файл DBF с неверным именем поля
Из хелпа FoxPro:
Имя поля (DBF) = 10 символов начинающееся с буквы (letter) .

Поэтому:
1 -"официальные" методы создания DBF будут проверять это факт.
2 - DBF с полями начинающимися на символ "_" созданы левыми способами.

Проверяется только на стадии создания, с готовыми DBF работать будет.
Тоже самое с полями начинающимися на цифры.

На счет риторического вопроса:
Символ "_" используется как служебный (wildcard character) в условии типа <поле> LIKE <шаблон> заменяя один неизвестный символ.
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Microsoft dBase-драйвер создает файл DBF с неверным именем поля / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]