Как мне создать таблицу 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