Without the ORDER BY I will see the tracks sorted as if the TrackNumber was alpha but with the ORDER BY they are definitely sorted by TrackNumber numerically.
This is being done in Javascript where previously this worked as intended using the COM objects in MM4 using newSongList = SDB.NewSongList and then SDB.Player.PlaylistAddTracks(newSongList ).
Code: Select all
let sql = "SELECT * FROM Songs WHERE IDAlbum = 12 ORDER BY CAST(DiscNumber as int), CAST(TrackNumber as int) ";
// also tried forcing the TrackNumber to have leading zeros in the ORDER BY (i.e. 1=001, 11=011, etc.)
//let sql = "SELECT printf('%03.0f', TrackNumber ) , * FROM Songs WHERE IDAlbum = 20 ORDER BY CAST(DiscNumber as int), printf('%03.0f', TrackNumber ) ";
console.log("selectAlbum sql:", sql);
var tracklist = app.db.getTracklist(sql, -1);
tracklist.whenLoaded().then(function () {
console.log("selectAlbum tracklist count:" + tracklist.count);
console.log("selectAlbum tracklist asJSON:", tracklist.asJSON);
app.player.addTracksAsync(tracklist, {});
});