【问题标题】:format firedac query result as string for listbox将firedac查询结果格式化为列表框的字符串
【发布时间】:2018-03-20 23:49:14
【问题描述】:

我有一个简单的 SQLite 数据库,其中有一个名为议程的表和一个名为“插槽”的 VARCHAR(35) 字段。我有一个 FireDAC TFDConnection 和 TFDquery 能够查询表。我的项目是针对 32 位 Windows 和 64 位 IOS 的 C++ 多设备应用程序。在我的表单上,我有一个 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 的最新版本。

【问题讨论】:

    标签: firemonkey firedac


    【解决方案1】:

    好吧,我傻得像一盒锤子。 SQLite 字段是 varchar,我应该将其设为 Text 字段。一旦我将“插槽”字段修改为文本数据类型,下面的新代码行就可以正常工作。

    Form1->ListBox1->Items->Add(query->FieldByName("slots")->AsString);
    

    见:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/SQLite_support_in_RAD_Studio

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      相关资源
      最近更新 更多