How it's stored depends on how the messages table is defined (which type
the message column has been given), which you haven't shown, and whether
storeMessage quotes the message argument when forming the string. My advice
is to remove any column type and make sure numbers are not quoted when they
are inserted into the database.

On Wed, Dec 6, 2017 at 11:09 AM, Cecil Westerhof <cldwester...@gmail.com>
wrote:

> I have the following tcl script:
>     #!/usr/bin/env tclsh
>
>     ### Improvements
>     # Get database from conf-file
>
>
>     package require sqlite3
>
>
>     proc getCPUTemp {} {
>         if {1 != [regexp -all -line {^CPU_TEMP: +\+([0-9.]+)°C } [exec
> sensors] -> temp]} {
>             error {Did not get exactly a single temperature line from [exec
> sensors] output}
>         }
>         return ${temp}
>     }
>
>     proc storeCPUTemp {} {
>         storeMessage cpu-temp [getCPUTemp]
>     }
>
>     proc storeMessage {type message} {
>         db eval "
>           INSERT INTO messages
>           (type, message)
>           VALUES
>           (:type, :message)
>     "
>     }
>
>     proc storeSwap {} {
>         storeMessage swap-usage [exec swapon --noheadings --show]
>     }
>
>     if {$argc != 1} {
>         error "Error: ${argv0} DATABASE"
>     }
>     sqlite db  [lindex $argv 0]
>     db     timeout 10000
>     while {true} {
>         after [expr {1000 * (60 - [clock seconds] % 60)}]
>         set   currentMinute [clock format [clock seconds] -format %M]
>         db transaction {
>             storeCPUTemp
>             # At the whole hour we save swap usage
>             if {${currentMinute} == "00"} {
>                 storeSwap
>             }
>         }
>     }
>     # Not really necessary because the above loop never ends
>     # But I find this more clear and is robuster against change
>     db close
>
> If I enter:
>     SELECT date
>     ,      message
>     ,      TYPEOF(message)
>     FROM   messages
>     WHERE  type = 'cpu-temp'
>        AND date = '2017-12-06'
>
> I see that the temperature is saved as text.
> In the past I had a script like this in Python who would save the
> temperature as real. What do I need to change to let this script save it as
> real also?
>
> --
> Cecil Westerhof
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to