Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有关联文本的SQLite列仍将长数字存储为整数_Sqlite - Fatal编程技术网

带有关联文本的SQLite列仍将长数字存储为整数

带有关联文本的SQLite列仍将长数字存储为整数,sqlite,Sqlite,我有一个名为deliverysimp的表,我试图在其中插入一些数据。我知道这些列的数据类型只是亲缘关系而不是限制,但是我需要将下面的parcelid列存储为TEXT CREATE TABLE IF NOT EXISTS deliverysimp (parcelid TEXT, expected integer, primary key (parcelid)) 我正在使用以下javascript将数据插入数据库: context.executeSql("INSERT INTO deliverys

我有一个名为
deliverysimp
的表,我试图在其中插入一些数据。我知道这些列的数据类型只是亲缘关系而不是限制,但是我需要将下面的
parcelid
列存储为
TEXT

CREATE TABLE IF NOT EXISTS deliverysimp (parcelid TEXT, expected integer, primary key (parcelid))
我正在使用以下javascript将数据插入数据库:

context.executeSql("INSERT INTO deliverysimp(parcelid, expected) values(?,?)",
    [
    '' + delivery.parcelid,
    delivery.expected
    ], function () { }, me.ErrorHandler);
您可以看到,我曾尝试在parcelid之前添加一个空白的
“”+
,以尝试强制关联,但没有此项,行为是相同的;即:

如果我尝试存储parcelid
33333333322222222222 3
这将作为
3.33333333333 22223E+34
存储到数据库中,我需要它作为文本/字符串表示


你知道我如何让SQLite将其命名为
TEXT

我怀疑你已经有了一个字符串,而不是你期望的字符串。由于您拥有的数字不能用8字节整数表示,因此它将转换为实数,转换为字符串,即“3.33333333333 22223E+34”。因此,如果希望值为'3333333332222222223',则必须将其插入表中


要检查,请执行
从deliverysimp中选择parcelid,TYPEOF(parcelid)
使用
sqlite3
命令行工具,查看您得到了什么。

JavaScript很乐意将
+
解释为数字的加法。尝试
toString()
。您是对的。当我返回到函数的初始化并检查传入的参数时,
parcelid
已经设置为
3.33333333 22223E+34
,因此我需要在代码的前面找到罪魁祸首。非常有助于找出错误的建议,谢谢。@RussAwesome:很高兴能帮上忙。