From ca008912dfc2a0b55e54adcae97f1b9c5ff197d4 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Thu, 17 Sep 2009 15:48:17 +0000 Subject: Modified validation to convert to default timestamp format. --- weblog-model.lua | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'weblog-model.lua') diff --git a/weblog-model.lua b/weblog-model.lua index ec4929e..896952a 100644 --- a/weblog-model.lua +++ b/weblog-model.lua @@ -501,6 +501,33 @@ local testdatabaseentry = function(datatype, value) return success, errtxt end +local convertdatabaseentry = function(datatype, value) + local success = true + local errtxt + local result = value + local res, err = pcall(function() + local sql = "CREATE TEMP TABLE testing ( test "..escape(datatype).." )" + assert (con:execute(sql)) + sql = "INSERT INTO testing VALUES ('"..value.."')" + assert (con:execute(sql)) + sql = "SELECT * FROM testing" + local cur = assert (con:execute(sql)) + local row = cur:fetch ({}, "a") + if row then + result = row.test + end + end) + if not res then + success = false + errtxt = string.gsub(err or "", "\n.*", "") + end + local res, err = pcall(function() + local sql = "DROP TABLE testing" + assert (con:execute(sql)) + end) + return success, errtxt, result +end + local printtableentries = function(tablename) -- retrieve a cursor local count = 0 @@ -1009,15 +1036,15 @@ local validateparameters = function(params) databaseconnect(DatabaseUser) local s if params.starttime.value ~= "" then - s,params.starttime.errtxt = testdatabaseentry("TIMESTAMP", params.starttime.value) + s,params.starttime.errtxt,params.starttime.value = convertdatabaseentry("TIMESTAMP", params.starttime.value) success = success and s end if params.endtime.value ~= "" then - s,params.endtime.errtxt = testdatabaseentry("TIMESTAMP", params.endtime.value) + s,params.endtime.errtxt,params.endtime.value = convertdatabaseentry("TIMESTAMP", params.endtime.value) success = success and s end if params.focus.value ~= "" then - s,params.focus.errtxt = testdatabaseentry("TIMESTAMP", params.focus.value) + s,params.focus.errtxt,params.focus.value = convertdatabaseentry("TIMESTAMP", params.focus.value) success = success and s end databasedisconnect() @@ -1163,11 +1190,11 @@ local function validateconfig(newconfig) databaseconnect(DatabaseUser) local s if newconfig.value.auditstart.value ~= "" then - s,newconfig.value.auditstart.errtxt = testdatabaseentry("TIMESTAMP", newconfig.value.auditstart.value) + s,newconfig.value.auditstart.errtxt,newconfig.value.auditstart.value = convertdatabaseentry("TIMESTAMP", newconfig.value.auditstart.value) success = success and s end if newconfig.value.auditend.value ~= "" then - s,newconfig.value.auditend.errtxt = testdatabaseentry("TIMESTAMP", newconfig.value.auditend.value) + s,newconfig.value.auditend.errtxt,newconfig.value.auditend.value = convertdatabaseentry("TIMESTAMP", newconfig.value.auditend.value) success = success and s end databasedisconnect() -- cgit v1.2.3