UnicodeString Delete Method (different result between 32-bit Win and iOS/Android)


I’m building a simple FMX app in C++ Builder (Tokyo 10.2.3) that displays agenda data from an SQLite db. I’ve added a TComboBox to let the user filter what is presented. The combo box has the following items added to it at runtime (these are committee names):

Show TD

I’m using the combo box to add a filter to an SQL query on the database. The data set has a field committee and each row of data belongs to one of those 3 committees (PSSC, TD, RRMS).

Below is my code to add the filter into a query. It works fine on 32-bit Windows but not on iOS or Android. All I’m doing is trimming off the “Show ” with the .Delete to the UnicodeString mystring.

mystring = Form1->cmbBoxFilters->Selected->Text;
mystring = mystring.Delete(1, 5);
query->SQL->Text = “SELECT * FROM mtgs WHERE weekday = ‘” + myday + “‘ AND committee = ‘” + mystring + “‘”;

Here is what is happening, in 32-bit Windows mystring is exactly as it should be. If i select “Show PSCC” from the combobox, then mystring ends up “PSCC” and the query works great. But, when I run on iOS or Android mystring ends up “SSCC”. The first letter of whatever is selected becomes an S. I can’t for the life of me figure out why.

I’m posting because I’m just curious as to how this “S” is showing up in my original code on iOS or Android and not 32-bit Win.

p.s. Just using TFDConnection, TFDQuery, and FDPhysSQLiteDriverLink on my Firemonkey form.

Comments are closed.