2016-06-03 2 views
1

Hy Я написал приложение с Gambas uning SQLiteTablenames в SQLITE Результат

При попытке порта на другой Linux Ditro, у меня есть разные ключи для полей в результирующем для SQLite Результат

Для пример:

sqlect * from table 

В на результирующем я

res["Tablename.Column1"] = Value 
res["Tablename.Column2"] = Value 
res["Tablename.Column3"] = Value 

и In inther is

res["Column1"] = Value 
res["Column2"] = Value 
res["Column3"] = Value 

Это большая проблема для меня. Любые идеи?

+0

Возможно, использование псевдонимов приведет к тому, что обе системы будут иметь одинаковые имена без классификатора таблицы: 'select column1 как column1, column2 как column2, column3 в качестве столбца3 из таблицы'. –

+0

Я не могу изменить каждый запрос в этом большом готовом приложении. Я хочу знать, почему это различие в sqlite. я также мог бы написать выберите table.colum1, table.column2, table.colum3 из таблицы НО: Я не могу изменить каждый запрос в этом большом готовом приложении. –

+0

Это может быть другая версия SQLite. Вы видите, что имена столбцов в результате должны быть уникальными, чтобы вы могли обращаться к столбцам по имени. Одна версия SQLite может убедиться, объединив таблицу и столбец, тогда как другая версия отмечает, что задействована только одна таблица и опускает классификатор таблицы в результатах. –

ответ

2

После очень долгого пути я нашел: я должен назвать

PRAGMA short_column_names = OFF 

Очень подробная информация может быть найдена здесь:

https://www.sqlite.org/pragma.html#pragma_full_column_names

+0

Отлично, что вы нашли решение и разместите его здесь. –

0

documentation говорит:

Имя столбца результата - это значение предложение «AS» для этого столбца, если существует предложение AS. Если нет предложения AS, имя столбца не указано и может меняться от одной версии SQLite к следующей.

Таким образом, единственным надежным способом получения согласованных имен столбцов результатов является использование AS.

+0

Это понятно. Но вопрос был. Почему существует разница, если нет AS от одного дистрибутива к другому точно таким же выпуском –