Beispiel #1
0
    public static GameObject GenerateAnalyticObject(Database database, int analyticType)
    {
        //Make sure to generate the correct type of harness (disk harness)
        GameObject currentHarness   = Generate((int)View_Type.DiskHarness);
        Transform  harnessTransform = currentHarness.transform;

        List <DatabaseUtilities.Table> tableInfo = database.tables;
        int tableCount = tableInfo.Count;

        GameObject[] anaObjects = new GameObject[tableCount];

        if (analyticType == 1)
        {
            DatabaseUtilities.Table         infoObject = tableInfo[0];
            List <DatabaseUtilities.Column> dataTypes  = infoObject.columns;
            int dataTypeSize = dataTypes.Count;

            GameObject[] disks = new GameObject[dataTypeSize];

            for (int i = 0; i < dataTypeSize; i++)
            {
                disks[i] = GenerateDiskObj(dataTypes[i], harnessTransform);
            }

            currentHarness.GetComponent <DiskHarness>().Initialize(disks, dataTypes);
        }

        return(currentHarness);
    }
Beispiel #2
0
    IEnumerator GetColumnTypesQ(String input, string baseData)
    {
        string  url  = "http://www.williamrobertfunk.com/applications/vedic/actions/query.php";
        WWWForm form = new WWWForm();

        form.AddField("dbname", dbname.text);
        form.AddField("hostname", hostname.text);
        form.AddField("username", username.text);
        form.AddField("password", password.text);
        form.AddField("query", input);

        UnityWebRequest www = UnityWebRequest.Post(url, form);

        yield return(www.Send());

        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            VedicDatabase.db             = DatabaseBuilder.ConstructDB(dbname.text, baseData);
            VedicDatabase.isDatabaseNull = false;

            string reply   = www.downloadHandler.text;
            string podData = reply.Substring(reply.IndexOf("##SelectTable##:{") + 17);
            // This Table ID sould be unlike original import
            // It should consist of a combo db name it came from, and select query random unique hash
            SelectTable             sTable   = new SelectTable(podData, "DTypes", "FunkDataTypesTable");
            DatabaseUtilities.Table t        = sTable.GetTable();
            List <string>           colTypes = new List <string>();
            for (int i = 0; i < t.columns[0].fields.Count; i++)
            {
                colTypes.Add(t.columns[0].fields[i]);
            }
            int           numOfColumns = VedicDatabase.GetNumOfColumns();
            List <string> colTypes2    = new List <string>();
            for (int i = (colTypes.Count - numOfColumns); i < colTypes.Count; i++)
            {
                colTypes2.Add(colTypes[i]);
            }
            int counter = 0;
            for (int j = 0; j < VedicDatabase.db.tables.Count; j++)
            {
                for (int k = 0; k < VedicDatabase.db.tables[j].columns.Count && counter < colTypes2.Count; k++, counter++)
                {
                    VedicDatabase.db.tables[j].columns[k].SetColor(VariableColorTable.GetVariableColor(colTypes2[counter]));
                    VedicDatabase.db.tables[j].columns[k].SetType(colTypes2[counter]);
                }
            }

            GetKeyColumns("SELECT CONCAT(TABLE_NAME, '.', COLUMN_NAME) AS 'foreign key', " +
                          "CONCAT(REFERENCED_TABLE_NAME, '.', REFERENCED_COLUMN_NAME) AS 'references' FROM " +
                          "INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NOT NULL");
        }
    }
Beispiel #3
0
    // Called from Send --- Makes it asynchronous
    IEnumerator SendQ(InputField input)
    {
        string  url  = "http://www.williamrobertfunk.com/applications/vedic/actions/query.php";
        WWWForm form = new WWWForm();

        form.AddField("dbname", dbname.text);
        form.AddField("hostname", hostname.text);
        form.AddField("username", username.text);
        form.AddField("password", password.text);
        form.AddField("query", input.text);

        pastQueries.Add(input.text);
        index = pastQueries.Count;

        UnityWebRequest www = UnityWebRequest.Post(url, form);

        yield return(www.Send());

        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            string reply = www.downloadHandler.text;

            // For SELECT queries only
            if (reply.IndexOf("##SelectTable##") > -1)
            {
                string textBoxData = reply.Substring(0, reply.IndexOf("##SelectTable##"));
                string podData     = reply.Substring(reply.IndexOf("##SelectTable##:{") + 17);
                // This Table ID should be unlike original import
                // It should consist of a combo dbname it came from, and select query random unique hash
                DatabaseUtilities.SelectTable sTable = new DatabaseUtilities.SelectTable(podData, "Test123", "FunkSelectTable");
                DatabaseUtilities.Table       t      = sTable.GetTable();
                podManager.SendPod(t, dbname + "-" + t.GetName());
                Debug.Log(textBoxData);
                Output.text = textBoxData;
            }
            // For non-Select Queries
            else
            {
                Debug.Log(reply);
                Output.text = reply;
            }
        }
    }
Beispiel #4
0
    private static GameObject GenerateTableObj(DatabaseUtilities.Table table, Transform harness, bool aType)
    {
        GameObject currentTable   = Generate((int)View_Type.Table);
        Transform  tableTransform = currentTable.transform;

        List <DatabaseUtilities.Column> columnInfo = table.columns;
        int columnCount = columnInfo.Count;

        GameObject[] cols = new GameObject[columnCount];

        for (int i = 0; i < columnCount; i++)
        {
            cols[i] = GenerateColumnObj(columnInfo[i], tableTransform, i);
        }

        currentTable.GetComponent <Table>().initialization(table.GetName(), table.GetId(), cols, harness, aType);
        return(currentTable);
    }
Beispiel #5
0
    public void SendPod(DatabaseUtilities.Table tab, string name)
    {
        Database test = new Database();

        test.SetName(name);
        test.tables = new List <DatabaseUtilities.Table>();
        test.AddTable(tab);

        BuildPod(test);

        /*DatabaseUtilities.Table t = new DatabaseUtilities.Table();
         * t.SetName("Dean");
         * t.SetId("T34");
         * t.columns = new List<DatabaseUtilities.Column>();
         *
         * DatabaseUtilities.Column c = new DatabaseUtilities.Column();
         * c.SetName("Sam");
         * c.SetId("12");
         * c.SetColor(DatabaseBuilder.GetRandomColor());
         * c.fields = new List<string>();
         * c.AddField("Dogs");
         *
         * DatabaseUtilities.Column c2 = new DatabaseUtilities.Column();
         * c2.SetName("Sammy");
         * c2.SetId("1234");
         * c2.SetColor(DatabaseBuilder.GetRandomColor());
         * c2.fields = new List<string>();
         * c2.AddField("Cats");
         *
         * t.AddColumn(c);
         * t.AddColumn(c2);
         *
         * test.AddTable(t);
         *
         */
    }
Beispiel #6
0
    IEnumerator GetKeyColumnsQ(String input)
    {
        string  url  = "http://www.williamrobertfunk.com/applications/vedic/actions/query.php";
        WWWForm form = new WWWForm();

        form.AddField("dbname", dbname.text);
        form.AddField("hostname", hostname.text);
        form.AddField("username", username.text);
        form.AddField("password", password.text);
        form.AddField("query", input);

        UnityWebRequest www = UnityWebRequest.Post(url, form);

        yield return(www.Send());

        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            string reply   = www.downloadHandler.text;
            string podData = reply.Substring(reply.IndexOf("##SelectTable##:{") + 17);
            // This Table ID sould be unlike original import
            // It should consist of a combo db name it came from, and select query random unique hash
            SelectTable             sTable = new SelectTable(podData, "Keys", "FunkKeysTable");
            DatabaseUtilities.Table t      = sTable.GetTable();
            for (int i = 0; i < t.columns[0].fields.Count; i++)
            {
                int    tabIndex   = -1;
                int    colIndex   = -1;
                string fKey       = t.columns[0].fields[i];
                string referenced = t.columns[1].fields[i];
                if (fKey != null && referenced != null && fKey.Length > 0 && referenced.Length > 0)
                {
                    for (int j = 0; j < VedicDatabase.db.tables.Count; j++)
                    {
                        if (VedicDatabase.db.tables[j].GetName() == referenced.Substring(0, referenced.IndexOf('.')))
                        {
                            tabIndex = j;
                            break;
                        }
                    }
                    if (tabIndex < 0)
                    {
                        continue;
                    }
                    for (int k = 0; k < VedicDatabase.db.tables[tabIndex].columns.Count; k++)
                    {
                        if (VedicDatabase.db.tables[tabIndex].columns[k].GetName() == referenced.Substring(referenced.IndexOf('.') + 1))
                        {
                            colIndex = k;
                            break;
                        }
                    }
                    if (colIndex < 0)
                    {
                        continue;
                    }
                    VedicDatabase.db.tables[tabIndex].columns[colIndex].AddFKey(fKey.Substring(0, fKey.IndexOf('.')), fKey.Substring(fKey.IndexOf('.') + 1));
                }
            }

            GameObject.FindGameObjectWithTag("Analytics").GetComponent <AnalyticManager>().BuildAnalytics();

            ViewAssembler.GenerateViewObject(VedicDatabase.db, false, false, -1);
        }
    }