Hey everyone,
I am trying to connect to a Microsoft Access database .mdb can this be done?
I would normally connect to an Sql database but due to project limitations I cant,
I came across this script a while ago what modifications will it need to run in Unity? It also has to be compatible to run under UWP,
Thanks in advance,
- publicstringFinalDatabasePath=“”;
- publicstringMydatabaseName=“Database1.mdb”;
- publicstring myFinalResult=“null”;
- voidStart()
- {
- StartCoroutine(CopyFileAsyncOnAndroid());
- }
- internalvoid readMDB(string filetoread)
- {
- string con =“Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=”+ filetoread +“/Database1.mdb”;
- Debug.Log(con);
- string yourQuery =“SELECT * FROM PlayersQuery”;
- // our odbc connector
- OdbcConnection oCon =newOdbcConnection(con);
- // our command object
- OdbcCommand oCmd =newOdbcCommand(yourQuery, oCon);
- // table to hold the data
- DataTable dtYourData =newDataTable(“YourData”);
- try
- {
- oCon.Open();
- OdbcDataReader rData = oCmd.ExecuteReader();
- dtYourData.Load(rData);
- rData.Close();
- oCon.Close();
- }
- catch(Exception ex)
- {
- Debug.Log(ex.ToString());
- }
- finally
- {
- if(oCon.State!=ConnectionState.Closed)
- oCon.Close();
- oCon.Dispose();
- }
- if(dtYourData.Rows.Count>0)
- {
- for(int i =0; i < dtYourData.Rows.Count; i++)
- {
- // for giggles, lets see the column name then the data for that column!
- Debug.Log(dtYourData.Columns[0].ColumnName+" : "+ dtYourData.Rows*[dtYourData.Columns[0].ColumnName].ToString()+*
- " | “+ dtYourData.Columns[1].ColumnName+” : "+ dtYourData.Rows*[dtYourData.Columns[1].ColumnName].ToString()+*
- " | “+ dtYourData.Columns[2].ColumnName+” : "+ dtYourData.Rows*[dtYourData.Columns[2].ColumnName].ToString()+*
- " | “+ dtYourData.Columns[3].ColumnName+” : "+ dtYourData.Rows*[dtYourData.Columns[3].ColumnName].ToString()*
- - );*
- - myFinalResult = dtYourData.Rows[2][dtYourData.Columns[1].ColumnName].ToString();*
- - }*
- - }*
- - }*
- - IEnumeratorCopyFileAsyncOnAndroid()*
- - {*
- - string fromPath =Application.streamingAssetsPath +“/”;*
- - //In Android = “jar:file://” + Application.dataPath + “!/assets/”*
- - string toPath =Application.persistentDataPath +“/”;*
- - string[ ] filesNamesToCopy =newstring[ ]{“Database1.mdb”};*
- - foreach(string fileName in filesNamesToCopy)*
- - {*
- - WWW www1 =new WWW( fromPath +fileName);*
- - yieldreturn www1;*
- - File.WriteAllBytes(toPath+ fileName, www1.bytes);*
- - }[/I][/I][/I][/I]*
}
void OnGUI() { if (GUI.Button(new Rect(10,20,50,50),“calc”))
- {
- readMDB(Application.persistentDataPath);
- }
- GUI.Label(newRect(100,150,100,100),myFinalResult);
- }
}