【问题标题】:How to deal: zeros disappear如何处理:零消失
【发布时间】:2021-04-29 12:52:00
【问题描述】:

我有一个程序,它的任务之一是将数据保存到数据库(我正在使用 SQLite)。这是我写的数据库代码:

qry.prepare("INSERT INTO " + DB_TABLE_OMEGA + "(KART, |. . . other stuff|) "             
                                              "VALUES(:KART, |. . . other stuff|)");
qry.bindValue(":KART", KART);                                                                        
|. . . other stuff|                                                                    
                                                                                                         
if(!qry.exec())                                                                                          
{                                                                                                        
    handleError("=(");                                                 
    exit(ERROR_CODE);                                                                                    
}                                                                                                        

KART 是一个固定大小的数字,保存为字符串。我通过解析xml文件得到它。通常我有这样的“001036404”。调试时字符串感觉很好,所以问题出在写入数据库的过程中。

数据库表列简单:

KART STRING

问题:

将数据推送到 db 后,SQLite 会保存我的号码,但不带前导零,如下所示:

“001036404”被推送--->“1036404”被保存

【问题讨论】:

    标签: c++ database sqlite qt


    【解决方案1】:

    SQLite 中没有STRING 数据类型,正如Datatypes In SQLite Version 3 中所述。

    如果您将列的数据类型定义为STRING,则该列的affinity will be determinedNUMERIC,因此任何在小数点后带有前导0s 或尾随0s 的数值都将是在没有它们的情况下存储。

    将列的数据类型重新定义为TEXT

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 2014-07-15
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      相关资源
      最近更新 更多