0

我创建了下表:

CREATE TABLE test (a INT,b INT);

在我插入一些数据后:

INSERT INTO test VALUES(1,2);

当我执行此 SELECT 时:

SELECT cast(b as real) as x, a * b as y FROM teste

字段“x”和“y”返回数据类型 TEXT。我使用的是 Delphi 和 SQLiteStudio 2.1.5,它们都返回相同的数据类型。

我需要那个字段x是真实的,y是int。

有人可以帮助我吗?

4

2 回答 2

0

Sqlite 没有列数据类型。这只是文字。根据您的表达,它会尝试为您进行转换。对于您的数学表达式,您需要进行强制转换以提示 delphi 创建所需的列类型。

于 2014-09-02T15:44:09.357 回答
0

对我来说奇怪的是,在 Sqlite 中,列类型是“推荐”。但是分析这个我改变了我的程序。我用正确的类型手动创建了字段。所以程序开始工作。

问题是当您打开查询并且 Delphi 自动创建列时。在这种情况下,具有强制转换或数学运算的列将像文本字段一样创建。

于 2014-09-02T13:47:36.193 回答