Как создать таблицу OLEDB со столбцом с именем «ДАТА»? - PullRequest
0 голосов
/ 18 января 2011

Мы используем поставщика Microsoft Jet OLEDB для вставки данных в устаревшую систему.

Эта система требует, чтобы мы вставляли данные, создавая файл DBF, который имеет формат:

employee Numeric (10,0),
jobcode Numeric (10,0),
date date

Итак, мы делаем следующее:

string strConnDbase = @"Provider = Microsoft.Jet.OLEDB.4.0" +
    ";Data Source = " + ruta +
    ";Extended Properties = dBASE IV" +
    ";User ID=Admin;Password=;";

Затем мы запускаем команду вроде:

string sql = "CREATE TABLE 20110112 ( EMPLOYEE Numeric(10,0), JOBCODE Numeric(10,0), DATE Date)";

К сожалению, этот оператор "sql" не выполняется.То есть столбец с именем «date» является ключевым словом, поэтому мы не можем создать таблицу.

Мы пытались экранировать (одинарные и двойные кавычки) имя столбца, но это тоже не работает.

Как мы можем построить таблицу с именем столбца "date"?

Спасибо!

- Энтони

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Попробуйте квадратные скобки:

CREATE TABLE 20110112 (СОТРУДНИК Числовой (10,0), JOBCODE Числовой (10,0), ДАТА [Дата])

У меня нет под рукой цели OLEDB, так что это всего лишь предположение, FWIW.

0 голосов
/ 08 февраля 2011

Вы не можете создать таблицу, начинающуюся с числа ... и это действительно плохая практика - создавать имена столбцов на основе зарезервированных слов (дата).

Просто добавьте префикс SOMEthing ... даже если это просто "T" для "Table".

создать таблицу T20110112

...