comparison src/sqlite.sml @ 1352:703c2c94afd5

Use proper string time format for SQLite
author Adam Chlipala <adam@chlipala.net>
date Mon, 20 Dec 2010 13:22:44 -0500
parents 929981850d9d
children e525ad571e15
comparison
equal deleted inserted replaced
1351:74d35d9a5d16 1352:703c2c94afd5
400 string "}", 400 string "}",
401 newline, 401 newline,
402 newline] 402 newline]
403 end 403 end
404 404
405 val fmt = "\"%Y-%m-%d %H:%M:%S\""
406
405 fun p_getcol {loc, wontLeakStrings, col = i, typ = t} = 407 fun p_getcol {loc, wontLeakStrings, col = i, typ = t} =
406 let 408 let
407 fun p_unsql t = 409 fun p_unsql t =
408 case t of 410 case t of
409 Int => box [string "sqlite3_column_int64(stmt, ", string (Int.toString i), string ")"] 411 Int => box [string "sqlite3_column_int64(stmt, ", string (Int.toString i), string ")"]
413 box [string "(uw_Basis_string)sqlite3_column_text(stmt, ", string (Int.toString i), string ")"] 415 box [string "(uw_Basis_string)sqlite3_column_text(stmt, ", string (Int.toString i), string ")"]
414 else 416 else
415 box [string "uw_strdup(ctx, (uw_Basis_string)sqlite3_column_text(stmt, ", string (Int.toString i), string "))"] 417 box [string "uw_strdup(ctx, (uw_Basis_string)sqlite3_column_text(stmt, ", string (Int.toString i), string "))"]
416 | Char => box [string "sqlite3_column_text(stmt, ", string (Int.toString i), string ")[0]"] 418 | Char => box [string "sqlite3_column_text(stmt, ", string (Int.toString i), string ")[0]"]
417 | Bool => box [string "(uw_Basis_bool)sqlite3_column_int(stmt, ", string (Int.toString i), string ")"] 419 | Bool => box [string "(uw_Basis_bool)sqlite3_column_int(stmt, ", string (Int.toString i), string ")"]
418 | Time => box [string "uw_Basis_stringToTime_error(ctx, (uw_Basis_string)sqlite3_column_text(stmt, ", string (Int.toString i), string "))"] 420 | Time => box [string "uw_Basis_stringToTimef_error(ctx, ",
421 string fmt,
422 string ", (uw_Basis_string)sqlite3_column_text(stmt, ",
423 string (Int.toString i),
424 string "))"]
419 | Blob => box [string "({", 425 | Blob => box [string "({",
420 newline, 426 newline,
421 string "char *data = (char *)sqlite3_column_blob(stmt, ", 427 string "char *data = (char *)sqlite3_column_blob(stmt, ",
422 string (Int.toString i), 428 string (Int.toString i),
423 string ");", 429 string ");",
589 string ", ", 595 string ", ",
590 arg, 596 arg,
591 string ")"] 597 string ")"]
592 | Time => box [string "sqlite3_bind_text(stmt, ", 598 | Time => box [string "sqlite3_bind_text(stmt, ",
593 string (Int.toString (i + 1)), 599 string (Int.toString (i + 1)),
594 string ", uw_Basis_attrifyTime(ctx, ", 600 string ", uw_Basis_timeToStringf(ctx, ",
601 string fmt,
602 string ", ",
595 arg, 603 arg,
596 string "), -1, SQLITE_TRANSIENT)"] 604 string "), -1, SQLITE_TRANSIENT)"]
597 | Blob => box [string "sqlite3_bind_blob(stmt, ", 605 | Blob => box [string "sqlite3_bind_blob(stmt, ",
598 string (Int.toString (i + 1)), 606 string (Int.toString (i + 1)),
599 string ", ", 607 string ", ",