我有一个在 Embarcadero C++Builder 中构建的多设备 FMX 表单。该应用程序打开一个本地 SQLite 数据库文件 ( my_local.db
) 并对它执行查询。
它在 iOS 上运行良好,但在 Android 上崩溃。没有要捕获的错误。SQLite 文件存在,语句ShowMessage
内部返回.#if
"/data/user/0/com.embarcadero.Project1/files/my_local.db"
如果我注释掉该query->Open()
语句,代码就会运行并且应用程序不会崩溃。
#if defined(_PLAT_IOS) || defined(_PLAT_ANDROID)
Form1->FDConnection1->Params->Values["ColumnMetadataSupported"] = "False";
Form1->FDConnection1->Params->Values["Database"] = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDocumentsPath(), "my_local.db");
if (FileExists(Form1->FDConnection1->Params->Values["Database"])) {
ShowMessage(Form1->FDConnection1->Params->Values["Database"]); // if file there show its path
}
#endif
TFDQuery *query;
query = new TFDQuery(NULL);
query->Connection = Form1->FDConnection1;
query->SQL->Text = "SELECT * FROM info";
query->Open();
有关如何捕获此错误的任何指示或建议?