将firedac查询结果格式化为listbox的字符串

时间:2018-03-20 23:49:14

标签: firemonkey firedac

我有一个简单的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));

enter image description here 这是我的相关代码:

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的最新产品。

1 个答案:

答案 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