SQLite3 - 存储错误的数据

时间:2015-03-03 11:02:41

标签: sqlite lua

我遇到了一些在数据库中出错的数据。

尝试存储Lua字符串,例如:

foo = "1234..78.0"

数据库不返回任何错误。但是从SQLite 3数据库中读取字符串时,它会返回奇怪的值,并以“ - ”作为第一个数字。

数据库:

db:exec(    "CREATE TABLE IF NOT EXISTS "
              "Pattern("
              "Idx        INTEGER PRIMARY KEY AUTOINCREMENT,"
              "Strip      TEXT,"    
              "Startdigit INTEGER," 
              "Enddigit   INTEGER," 
              "Value      TEXT,"     -- < -- THIS FIELD IS THE ISSUE
              "Name       TEXT,"    
              "Message    TEXT,"  
              "Relatives  BLOB"     
           ")"
         )

写入查询:

queries.newPattern:prepare("INSERT INTO Pattern(Strip, Startdigit, Enddigit, Value, Name, Message, Relatives) VALUES( (?) , (?) , (?) , (?) , (?) , (?) , (?) )")

其中(?)是在执行查询之前必须绑定的变量:

queries.newPattern:bind( idx , value ) -- binds value to (?) at (idx)th position

所有数据类型都是正确的,执行不会返回任何错误。

错误,错误= queries.newPattern:exec()

所以错误和错误是零。

queries.newPattern:lastError() 

返回nil。

使用以下方式阅读数据库:

db:exec("SELECT * FROM Pattern") 

返回所有正确的数据,但“Value”字段除外,该字段已损坏。

在每次查询之后,SQLites的最后一个错误是nil,所以我假设没有数据类型不匹配或其他什么。

返回值类似于(示例):

"-1434302411"

这里有什么黑魔法表演?

0 个答案:

没有答案