コード例 #1
0
ファイル: Test.cs プロジェクト: hellomercury/UnitySQLite
        void OnGUI()
        {
            GUI.skin.button.fontSize = 64;
            if (GUILayout.Button("W"))
            {
                SQLite3Handle          handle = new SQLite3Handle(Application.dataPath + "/StreamingAssets/Database/static.db");
                Dictionary <int, Item> item   = handle.SelectMultiT <Item>();
                //foreach (KeyValuePair<int, Item> keyValuePair in item)
                //{
                //    Debug.LogError(keyValuePair.Value);
                //}
            }

            if (GUILayout.Button("R"))
            {
            }
        }
コード例 #2
0
        public static void Creator(ref TableData InTableData, string InDatabasePath)
        {
            string path = Application.dataPath + "/" + InDatabasePath;

            SQLite3Handle handle = new SQLite3Handle(path, SQLite3OpenFlags.Create | SQLite3OpenFlags.ReadWrite);

            StringBuilder sb = new StringBuilder(512);

            handle.Exec("DROP TABLE IF EXISTS " + InTableData.TableName);

            sb.Append("CREATE TABLE ")
            .Append(InTableData.TableName)
            .Append("(");

            int length = InTableData.ColumnName.Length;

            for (int i = 0; i < length; i++)
            {
                if (InTableData.IsColumnEnables[i])
                {
                    sb.Append(InTableData.ColumnName[i])
                    .Append(" ")
                    .Append(InTableData.SQLite3Types[i])
                    .Append(GetConnstraint(InTableData.SQLite3Constraints[i]))
                    .Append(", ");
                }
            }
            sb.Remove(sb.Length - 2, 2);
            sb.Append(")");
            handle.Exec(sb.ToString());

            if (null != InTableData.ExcelContents)
            {
                length = InTableData.ExcelContents.Length;
                int   subLength;
                ICell cell;
                for (int i = 0; i < length; i++)
                {
                    subLength = InTableData.ExcelContents[i].Length;
                    sb.Remove(0, sb.Length);
                    sb.Append("INSERT INTO ").Append(InTableData.TableName).Append(" VALUES(");
                    for (int j = 0; j < subLength; j++)
                    {
                        if (InTableData.IsColumnEnables[j])
                        {
                            cell = InTableData.ExcelContents[i][j];
                            switch (InTableData.SQLite3Types[j])
                            {
                            case SQLite3ValueType.INTEGER:
                                if (null == cell)
                                {
                                    sb.Append(0);
                                }
                                else
                                {
                                    switch (cell.CellType)
                                    {
                                    case CellType.Numeric:
                                        sb.Append((int)cell.NumericCellValue);
                                        break;

                                    case CellType.String:
                                        int result;
                                        sb.Append(int.TryParse(cell.StringCellValue, out result)
                                                    ? result
                                                    : 0);
                                        break;

                                    case CellType.Boolean:
                                        sb.Append(cell.BooleanCellValue ? 1 : 0);
                                        break;

                                    default:
                                        sb.Append(0);
                                        break;
                                    }
                                }
                                break;

                            case SQLite3ValueType.REAL:
                                if (null == cell)
                                {
                                    sb.Append(0);
                                }
                                else
                                {
                                    switch (cell.CellType)
                                    {
                                    case CellType.Numeric:
                                        sb.Append(cell.NumericCellValue);
                                        break;

                                    case CellType.String:
                                        double result;
                                        sb.Append(double.TryParse(cell.StringCellValue, out result)
                                                    ? result
                                                    : 0);
                                        break;

                                    case CellType.Boolean:
                                        sb.Append(cell.BooleanCellValue ? 1 : 0);
                                        break;

                                    default:
                                        sb.Append(0);
                                        break;
                                    }
                                }
                                break;

                            default:
                                if (null == cell)
                                {
                                    sb.Append("''");
                                }
                                else
                                {
                                    switch (cell.CellType)
                                    {
                                    case CellType.Numeric:
                                        sb.Append("\'")
                                        .Append(cell.NumericCellValue)
                                        .Append("\'");
                                        break;

                                    case CellType.String:
                                        sb.Append("\'")
                                        .Append(cell.StringCellValue.Replace("'", "''"))
                                        .Append("\'");
                                        break;

                                    case CellType.Boolean:
                                        sb.Append("\'")
                                        .Append(cell.BooleanCellValue.ToString())
                                        .Append("\'");
                                        break;

                                    default:
                                        sb.Append("''");
                                        break;
                                    }
                                }
                                break;
                            }
                            sb.Append(", ");
                        }
                    }
                    sb.Remove(sb.Length - 2, 2);
                    sb.Append(")");
                    handle.Exec(sb.ToString());
                }
            }

            handle.CloseDB();
        }
コード例 #3
0
    static void CreateDatabaseTable(string InName, ColumnParameter[] InColParameters, List <ICell[]> InCellData,
                                    string InDatabasePath)
    {
        SQLite3Handle handle = new SQLite3Handle(Application.dataPath + "/" + InDatabasePath, SQLite3OpenFlags.Create | SQLite3OpenFlags.ReadWrite);

        StringBuilder sb = new StringBuilder(512);

        handle.Exec("DROP TABLE IF EXISTS " + InName);

        sb.Append("CREATE TABLE ")
        .Append(InName)
        .Append("(");
        int length = InColParameters.Length;

        for (int i = 0; i < length; i++)
        {
            if (InColParameters[i].IsEnable)
            {
                sb.Append(InColParameters[i].Name)
                .Append(" ")
                .Append(InColParameters[i].Type)
                .Append(", ");
            }
        }
        sb.Remove(sb.Length - 2, 2);
        sb.Append(")");

        handle.Exec(sb.ToString());

        if (null != InCellData)
        {
            length = InCellData.Count;
            int   length1 = InCellData[0].Length;
            ICell cell;
            for (int i = 0; i < length; i++)
            {
                sb.Remove(0, sb.Length);
                sb.Append("INSERT INTO ").Append(InName).Append(" VALUES(");
                for (int j = 0; j < length1; j++)
                {
                    cell = InCellData[i][j];
                    switch (InColParameters[j].Type)
                    {
                    case ValueType.INTEGER:
                        if (null == cell)
                        {
                            sb.Append(0);
                        }
                        else
                        {
                            switch (cell.CellType)
                            {
                            case CellType.Numeric:
                                sb.Append((int)cell.NumericCellValue);
                                break;

                            case CellType.String:
                                int result;
                                sb.Append(int.TryParse(cell.StringCellValue, out result)
                                            ? result
                                            : 0);
                                break;

                            case CellType.Boolean:
                                sb.Append(cell.BooleanCellValue ? 1 : 0);
                                break;

                            default:
                                sb.Append(0);
                                break;
                            }
                        }
                        break;

                    case ValueType.REAL:
                        if (null == cell)
                        {
                            sb.Append(0);
                        }
                        else
                        {
                            switch (cell.CellType)
                            {
                            case CellType.Numeric:
                                sb.Append(cell.NumericCellValue);
                                break;

                            case CellType.String:
                                double result;
                                sb.Append(double.TryParse(cell.StringCellValue, out result)
                                            ? result
                                            : 0);
                                break;

                            case CellType.Boolean:
                                sb.Append(cell.BooleanCellValue ? 1 : 0);
                                break;

                            default:
                                sb.Append(0);
                                break;
                            }
                        }
                        break;

                    default:
                        if (null == cell)
                        {
                            sb.Append("''");
                        }
                        else
                        {
                            switch (cell.CellType)
                            {
                            case CellType.Numeric:
                                sb.Append("\'")
                                .Append(cell.NumericCellValue)
                                .Append("\'");
                                break;

                            case CellType.String:
                                sb.Append("\'")
                                .Append(cell.StringCellValue.Replace("'", "''"))
                                .Append("\'");
                                break;

                            case CellType.Boolean:
                                sb.Append("\'")
                                .Append(cell.BooleanCellValue.ToString())
                                .Append("\'");
                                break;

                            default:
                                sb.Append("''");
                                break;
                            }
                        }
                        break;
                    }
                    sb.Append(", ");
                }
                sb.Remove(sb.Length - 2, 2);
                sb.Append(")");
                //Debug.LogError(sb.ToString());
                handle.Exec(sb.ToString());
            }
        }

        handle.CloseDB();
    }