Всем привет в базе данных присутствуют таблицы, которые содержат одинарные кавычки. Таблицы содержащие кавычку в названии не выгружают данные посредством метода:
QSqlTableModel::select();
Не могу понять как с ними работать. Пробовал решать проблему различными способами, например
QString tableName = "My'Table"; // условное название таблицы
//1 tableName.replace("'", "''"); // "My''Table" Данный способ не работает
//2 tableName = QString("[%1]").arg(tableName); "[My'Table]" //Тоже не работает
tableModel.setTable(tableName);
Подскажите пожалуйста, есть ли способы обойти проблему или же придется редактировать название всех таблиц?
В любом случае советую избегать использования кавычек в названиях баз, таблиц и полей. Потому что запрос к такой таблице будет сложнее сформировать. Потому что стандартный вариант
INSERT INTO My'Table (field) VALUES(value);
не сработает, так как будет не хватать закрывающей кавычки. Добавление закрывающей кавычки (как у вас) тоже не сработает, потому что несоответствие имени, неправильный синтаксис и прочее.
Единственное, что можно сделать:
INSERT INTO "My'Table" (field) VALUES(value);
Но кавычки в названиях это плохой тон. Как и пробелы и кириллица.
Продвижение своими сайтами как стратегия роста и независимости