Some database converting changes
This commit is contained in:
1 parent
c055fe5e04
commit
fbd2f2aee3
1 file changed
+29
-21
+29
-21
@@ -485,6 +485,32 @@ namespace Vocaluxe.Base
|
|||||||
command.CommandText = "INSERT INTO Songs SELECT ID, Artist, Title, TimesPlayed from US_Songs";
|
command.CommandText = "INSERT INTO Songs SELECT ID, Artist, Title, TimesPlayed from US_Songs";
|
||||||
command.ExecuteNonQuery();
|
command.ExecuteNonQuery();
|
||||||
|
|
||||||
|
CLog.LogError("The database has been converted but all non ASCII characters got lost in this process");
|
||||||
|
|
||||||
|
/* Unfortunately all SQLite Wrappers do convert data to UTF8 when interacting with the database, so converting cant be done in .Net,
|
||||||
|
* we might have to write a library in C++ which can convert data or just write a simple program to which converts the tables.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//Now loop through all tables and convert from CP1252 to UTF8
|
||||||
|
//command.CommandText = "SELECT ID, Artist, Title from US_Songs";
|
||||||
|
|
||||||
|
//Create a DataTable containing the results
|
||||||
|
//DataTable results = new DataTable();
|
||||||
|
//SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
|
||||||
|
//adapter.Fill(results);
|
||||||
|
|
||||||
|
//foreach (DataRow row in results.Rows)
|
||||||
|
//{
|
||||||
|
// //FIXME: Convert Latin1(CP1252) to UTF8
|
||||||
|
// int id = Convert.ToInt32(row.ItemArray[0].ToString());
|
||||||
|
// string artist = row.ItemArray[1].ToString();
|
||||||
|
// //artist = Encoding.Unicode.GetString(Encoding.Convert(Encoding.GetEncoding(1252), Encoding.Unicode, Encoding.GetEncoding(1252).GetBytes(row.ItemArray[1].ToString())));
|
||||||
|
// string title = row.ItemArray[2].ToString();
|
||||||
|
|
||||||
|
// command.CommandText = "UPDATE Songs SET Artist ='" + artist + "', Title = '" + title + "'WHERE ID = " + id;
|
||||||
|
// command.ExecuteNonQuery();
|
||||||
|
//}
|
||||||
|
|
||||||
//Delete old tables after conversion
|
//Delete old tables after conversion
|
||||||
command.CommandText = "DROP TABLE US_Scores;";
|
command.CommandText = "DROP TABLE US_Scores;";
|
||||||
command.ExecuteNonQuery();
|
command.ExecuteNonQuery();
|
||||||
@@ -492,27 +518,9 @@ namespace Vocaluxe.Base
|
|||||||
command.CommandText = "DROP TABLE US_Songs;";
|
command.CommandText = "DROP TABLE US_Songs;";
|
||||||
command.ExecuteNonQuery();
|
command.ExecuteNonQuery();
|
||||||
|
|
||||||
//Now loop through all tables and convert from CP1252 to UTF8
|
//results.Dispose();
|
||||||
command.CommandText = "SELECT ID, Artist, Title from Songs";
|
//adapter.Dispose();
|
||||||
|
|
||||||
//Create a DataTable containing the results
|
|
||||||
DataTable results = new DataTable();
|
|
||||||
SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
|
|
||||||
adapter.Fill(results);
|
|
||||||
|
|
||||||
foreach (DataRow row in results.Rows)
|
|
||||||
{
|
|
||||||
//FIXME: Convert Latin1(CP1252) to UTF8
|
|
||||||
int id = Convert.ToInt32(row.ItemArray[0].ToString());
|
|
||||||
string artist = row.ItemArray[1].ToString();
|
|
||||||
string title = row.ItemArray[2].ToString();
|
|
||||||
|
|
||||||
command.CommandText = "UPDATE Songs SET Artist ='" + artist + "', Title = '" + title + "'WHERE ID = " + id;
|
|
||||||
command.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
results.Dispose();
|
|
||||||
adapter.Dispose();
|
|
||||||
reader.Dispose();
|
reader.Dispose();
|
||||||
command.Dispose();
|
command.Dispose();
|
||||||
connection.Close();
|
connection.Close();
|
||||||
|
|||||||
Reference in new issue
Block a user