現在Unityでアプリを開発しており、アプリからwebサーバへアクセスしwebサーバのsqliteデータベースの内容をunityのアプリの内のsqliteデータベースへ書き込もうとしています。
現状の問題としてunityからphpを経由して、sqliteデータベースの内容を取得しているのですが、取得したデータをUnityアプリ内のデータベースへ格納しようとするとquery文実行でout of memoryのエラーが発生します。
SQLiteUnityKitを使用して、UnityでSQLiteを使用しています。
何が問題でout of memoryが発生するのでしょうか。
以前は問題なく実行できていたはずなのですがモジュール追加などをした以降から動作ができなくなった印象があります。
C#
1エラー文: 2SqliteException: out of memory 3SqliteDatabase.Prepare (System.String query) (at Assets/Script/SqliteDatabase.cs:381) 4SqliteDatabase.ExecuteNonQuery (System.String query) (at Assets/Script/SqliteDatabase.cs:233) 5volcanoinsert+<GetJSON>d__12.MoveNext () (at Assets/~~.cs:284) 6UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <3dc54541a2574ac7826a004a212a4332>:0) 7 8SqliteDatabase.csの381付近 9private IntPtr Prepare(string query) 10 { 11 IntPtr stmHandle; 12 int byteCnt = System.Text.Encoding.GetEncoding("UTF-8").GetByteCount(query); 13 if (sqlite3_prepare_v2(_connection, query, byteCnt, out stmHandle, IntPtr.Zero) != SQLITE_OK) 14 { 15 IntPtr errorMsg = sqlite3_errmsg(_connection); 16 throw new SqliteException(Marshal.PtrToStringAnsi(errorMsg)); //ここが381行目 17 } 18 19 return stmHandle; 20 } 21SqliteDatabase.csの233付近 22public void ExecuteNonQuery (string query) 23 { 24 if (!CanExQuery) { 25 Debug.Log ("ERROR: Can't execute the query, verify DB origin file"); 26 return; 27 } 28 IntPtr stmHandle = Prepare (query); //ここが233行目 29 if (sqlite3_step (stmHandle) != SQLITE_DONE) { 30 throw new SqliteException ("Could not execute SQL statement."); 31 } 32 33 Finalize (stmHandle); 34 } 35 36Assets/~~.csの284付近 37SqliteDatabase sqlDB = new SqliteDatabase("test.db"); 38string quary = "insert into main values('" + id + "', '" + sub + "','" + title + "' )";//PHP経由で取得したデータをテーブルに格納する 39sqlDB.ExecuteNonQuery(quary);//ここが284行目 40
正直何が原因かわからない状況です。
どなたかお力をお貸しいただければ幸いです。
あなたの回答
tips
プレビュー