我有一个简单的SQLite数据库,其中一个表名为agenda,一个字段为VARCHAR(35),名为“slots”。我有一个FireDAC TFDConnection和TFDquery,可以查询表。我的项目是C ++中的多设备应用程序,目标是32位窗口和64位IOS。在我的表单上,我有一个ListBox控件。我正在尝试从查询中填充此ListBox1。我无法弄清楚如何让它在IOS中正常工作。
我的下面的代码问题与尝试格式化从查询返回的字符串有关。我尝试了不同的组合:http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.AnsiStrings.Format但没有任何效果。
Form1->ListBox1->Items->Add(System::UnicodeString::Format("%s", arguments, ARRAYSIZE(arguments) - 1));
void LoadListBox1()
{
TFDQuery *query;
query = new TFDQuery(NULL);
__try {
query->Connection = Form1->FDConnection1;
query->SQL->Text = "SELECT * FROM agenda";
query->Open();
while (!query->Eof) {
TVarRec arguments[1] = {query->FieldByName("slots")->AsString};
Form1->ListBox1->Items->Add(System::UnicodeString::Format("%s", arguments, ARRAYSIZE(arguments) - 1));
query->Next();
}
}
__finally {
query->Close();
query->DisposeOf();
}
}
使用Tokyo C ++ Builder 10.2 Update 2. IOS是iPhone的最新产品。
答案 0 :(得分:0)
好吧,我和一盒锤子一样笨。 SQLite字段是一个varchar,我应该把它变成一个Text字段。一旦我将“slots”字段修改为Text数据类型,下面的新代码就可以了。
Form1->ListBox1->Items->Add(query->FieldByName("slots")->AsString);
请参阅:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/SQLite_support_in_RAD_Studio