Я пытаюсь соединить две базы данных SQLite в проекте Unity3d, и у меня возникают некоторые проблемы.
Мои пути к базам данных и имена файлов верны (проверены и подтверждены), и я могу запрашивать / вставлять / и т. Д. ... из каждой базы данных в отдельности. Однако, когда я запускаю команду ATTACH, она возвращает ошибку о том, что моя логика SQL неверна. Я просмотрел множество ссылок и примеров, каждый из которых указывает на то, что моя команда должна выполняться так, как ожидалось.
Вот соответствующий код:
//open TEMP database
DBAccess.OpenOrCreateDB("/Resources/Data/SaveGames/" + GameController.user.username +
"/", GameController.user.username + "_TEMP");
//attach SAVEGAME database and transfer data from TEMP database
DBAccess.NonQuery("ATTACH DATABASE '" + Application.dataPath + "/Resources/GameData/"
+ GameController.user.username + "/" + GameController.user.username + DBAccess.DBEXT
+ "' AS LOAD_DB;");
//copy records from TEMP database to save game database
//(omitted because not relevant to issue)
//detach SAVEGAME database
DBAccess.NonQuery("PRAGMA LOAD_DB.journal_mode=delete; DETACH DATABASE LOAD_DB;");
//close database
DBAccess.CloseDB();
Целью этого является копирование базы данных внутриигровых изменений в файл базы данных сохраненных игр игрока.
Моя ошибка отладки выводит следующее:
DBAccess -- Cannot perform command with statement: <ATTACH '/Users/scottwindsor/ADITL/
Assets/Resources/GameData/New User/New User.db' AS LOAD_DB;>
Казалось бы, моя команда SQL должна работать ... Любая помощь приветствуется.
Технические характеристики:
- Платформа: OSX (я думаю, Lepoard)
- Компилятор: Unity3D (игровой движок)
- Язык: C #
- SQL: SQLite3.dll
- Использование IDBCommand.ExecuteNonQuery () для отправки незапрошенных команд в базу данных.
- Использование IDBCommand.ExecuteReader () для отправки всех других команд / запросов в базу данных.