Всем Привет! У меня игра с разными типами сохранения SQLite и JSON. Когда на компьютер компилируемый игру то все работает. Но когда для Web компилирую тогда Json работает, а SQLite не работает. Для этой игры я использую стандартный бесплатный хостинг beget.com. Я вот думаю может не работает потому, что для SQLite нужен VPS (VDS) сервер. Или в другом причина?
using SQLite; https://github.com/praeclarum/sqlite-net - использована разрешения
Сайт с этой Ошибкой http://l91069r2.beget.tech/
Этот тестовый проект на GitHube https://github.com/Orcan37/TestDataBaseSQLite
Код
using UnityEngine;
using System;
using System.IO;
using System.Collections.Generic;
using SQLite; // from https://github.com/praeclarum/sqlite-net
using UnityEngine.AI;
public partial class Database : MonoBehaviour
{
public string databaseFile = "Database.sqlite";
// connection
SQLiteConnection connection;
public void Connect()
{
#if UNITY_EDITOR
string path = Path.Combine(Directory.GetParent(Application.dataPath).FullName, databaseFile);
#elif UNITY_ANDROID
string path = Path.Combine(Application.persistentDataPath, databaseFile);
#elif UNITY_IOS
string path = Path.Combine(Application.persistentDataPath, databaseFile);
#else
string path = Path.Combine(Application.dataPath, databaseFile);
#endif
// open connection
// note: automatically creates database file if not created yet
connection = new SQLiteConnection(path);
// Utils.InvokeMany(typeof(Database), this, "Initialize_"); // TODO remove later. let's keep the old hook for a while to not break every single addon!
// Utils.InvokeMany(typeof(Database), this, "Connect_"); // the new hook!
}
public void CreatTable()
{
connection.CreateTable<testTable>();
}
class testTable /// orcan
{
[PrimaryKey] // // важно для производительности: O (log n) вместо O (n)
[Collation("NOCASE")] //// [COLLATE NOCASE для сравнения без учета регистра. таким образом, мы не можем одновременно создавать "Арчер" и "Арчер" как символы]
public string name { get; set; } // имя в названия в Ячейки тлько 1 может быть
public string test1 { get; set; }
public string test2 { get; set; }
}
public void PushTest(string valueName, GameObject itemManagerGO)
{
SQLbutn itemManager = itemManagerGO.GetComponent<SQLbutn>();
// Debug.Log("????Data PushValuesItem????" + valueName + " " + itemManagerGO.name);
connection.Execute("DELETE FROM testTable WHERE name=?", valueName);
connection.InsertOrReplace(new testTable
{
// ID = itemManager.ID,
name = valueName,
test1 = itemManager.test1 ,
test2 = itemManager.test2
});
}
public void PullTest(string valueName, GameObject itemManagerGO)
{
SQLbutn itemManager = itemManagerGO.GetComponent<SQLbutn>();
foreach (testTable row in connection.Query<testTable>("SELECT * FROM testTable WHERE name=?", valueName))
{
// itemManager.ID = row.ID;
itemManager.test1 = row.test1;
itemManager.test2 = row.test2;
}
} }