Как мне создать таблицу OLEDB со столбцом с именем "ДАТА"?

Мы используем поставщика 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 является ключевым словом, поэтому мы не можем создать таблицу.

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

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

Спасибо!

Энтони

2 ответа

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

CREATE TABLE 20110112 (числовой работник (10,0), числовой код JOBCODE (10,0), дата [дата])

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

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

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

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

Другие вопросы по тегам