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); }
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"); } }
// 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; } } }
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); }
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); * */ }
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); } }