delphi - FireDAC SQLITE:没有这样的表列:PRAGMA_TABLE_INFO
问题描述
我正在使用带有 fireac sqlite3 的 delphi rio 10.3 构建应用程序
我在下面尝试时,编译指示函数不能与“选择命令”一起使用:
procedure Tamdf.Button31Click(Sender:TObject);
begin
MyFDQuery.Open('SELECT name FROM PRAGMA_table_info("DOCM")');
ShowMessage(MyFDQuery.Fields[0].AsString);
end;
我收到错误消息:“错误:没有这样的表列:PRAGMA_table_info.name”我做错了什么?
解决方案
以下代码在包含表“MyTable”的 Sqlite 数据库上工作正常。我不确定您使用的 SQL 是否适合在 FireDAC 中使用
procedure TForm3.Button1Click(Sender: TObject);
begin
if FDQuery1.Active then
FDQuery1.Close;
FDQuery1.Open('PRAGMA Table_Info(''MyTable'')');
end;
它返回
cid name
0 ID
1 NAME
如果不出意外,您可以使用 FireDAC 的 LocalSQLName
从返回的结果集中提取。
我会看看我是否可以让 SELECT 与 PRAGMA 查询一起工作......
此查询在 FireFox 的 Sqlite Manager 加载项中运行良好
select * from PRAGMA_table_info('mytable')
但返回错误
没有这样的表:PRAGMA_Table_Info'。
当由 FDQuery1 执行时。
推荐阅读
- android-studio - Android 项目包含以“._”开头的额外文件
- html - 如何计算自定义 ValidityState
- c++ - How to group decimal places as well?
- hive - 为什么在 Hive 中映射器的数量变化如此之大以进行插入覆盖
- java - 无法解压缩 zip4j 库 java 创建的 zip 文件
- r - 如何修复R中的“替换有x行,数据有z”
- javafx - 为什么我的 CellFactory 中的第一个 TableRow 为空?
- php - 我从数据库中下载图像的功能不起作用
- html - 悬停时触发可翻转卡片的问题
- selenium - Chrome 无头不适用于重定向 (OAUTH2)