Added persistence support for Eiffel sqlite3 wrapper.
Updated existing persistency solution to be more generic to any db solution.
This commit is contained in:
@@ -28,9 +28,10 @@ feature -- Access
|
||||
error_handler.reset
|
||||
write_information_log (generator + ".nodes_count")
|
||||
sql_query (sql_select_nodes_count, Void)
|
||||
if sql_rows_count = 1 then
|
||||
if not has_error and not sql_after then
|
||||
Result := sql_read_natural_64 (1)
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
|
||||
@@ -175,9 +176,10 @@ feature -- Access
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_id, "nid")
|
||||
sql_query (sql_select_node_by_id, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not has_error and not sql_after then
|
||||
Result := fetch_node
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
node_by_id_and_revision (a_node_id, a_revision: INTEGER_64): detachable CMS_NODE
|
||||
@@ -191,9 +193,10 @@ feature -- Access
|
||||
l_parameters.put (a_node_id, "nid")
|
||||
l_parameters.put (a_revision, "revision")
|
||||
sql_query (sql_select_node_by_id_and_revision, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not has_error and not sql_after then
|
||||
Result := fetch_node
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
node_author (a_node: CMS_NODE): detachable CMS_USER
|
||||
@@ -207,9 +210,10 @@ feature -- Access
|
||||
l_parameters.put (a_node.id, "nid")
|
||||
l_parameters.put (a_node.revision, "revision")
|
||||
sql_query (Select_user_author, l_parameters)
|
||||
if sql_rows_count >= 1 then
|
||||
if not has_error and not sql_after then
|
||||
Result := fetch_author
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
last_inserted_node_id: INTEGER_64
|
||||
@@ -218,9 +222,10 @@ feature -- Access
|
||||
error_handler.reset
|
||||
write_information_log (generator + ".last_inserted_node_id")
|
||||
sql_query (Sql_last_insert_node_id, Void)
|
||||
if sql_rows_count = 1 then
|
||||
if not has_error and not sql_after then
|
||||
Result := sql_read_integer_64 (1)
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
last_inserted_node_revision (a_node: detachable CMS_NODE): INTEGER_64
|
||||
@@ -234,11 +239,16 @@ feature -- Access
|
||||
create l_parameters.make (1)
|
||||
l_parameters.force (a_node.id, "nid")
|
||||
sql_query (Sql_last_insert_node_revision_for_nid, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not has_error and not sql_after then
|
||||
if sql_item (1) /= Void then
|
||||
Result := sql_read_integer_64 (1)
|
||||
end
|
||||
sql_forth
|
||||
if not sql_after then
|
||||
check no_more_than_one: False end
|
||||
end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
-- if Result = 0 and not has_error then --| include the case a_node = Void
|
||||
-- sql_query (Sql_last_insert_node_revision, Void)
|
||||
@@ -328,7 +338,7 @@ feature -- Change: Node
|
||||
l_parameters.put (create {DATE_TIME}.make_now_utc, "changed")
|
||||
l_parameters.put ({CMS_NODE_API}.trashed, "status")
|
||||
l_parameters.put (a_id, "nid")
|
||||
sql_change (sql_trash_node, l_parameters)
|
||||
sql_modify (sql_trash_node, l_parameters)
|
||||
end
|
||||
|
||||
delete_node_base (a_node: CMS_NODE)
|
||||
@@ -343,11 +353,11 @@ feature -- Change: Node
|
||||
error_handler.reset
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_node.id, "nid")
|
||||
sql_change (sql_delete_node, l_parameters)
|
||||
sql_modify (sql_delete_node, l_parameters)
|
||||
|
||||
-- we remove node_revisions and pages.
|
||||
-- Check: maybe we need a transaction.
|
||||
sql_change (sql_delete_node_revisions, l_parameters)
|
||||
sql_modify (sql_delete_node_revisions, l_parameters)
|
||||
|
||||
if not error_handler.has_error then
|
||||
extended_delete (a_node)
|
||||
@@ -368,7 +378,7 @@ feature -- Change: Node
|
||||
l_parameters.put (l_time, "changed")
|
||||
l_parameters.put ({CMS_NODE_API}.not_published, "status")
|
||||
l_parameters.put (a_id, "nid")
|
||||
sql_change (sql_restore_node, l_parameters)
|
||||
sql_modify (sql_restore_node, l_parameters)
|
||||
end
|
||||
|
||||
|
||||
@@ -412,7 +422,7 @@ feature {NONE} -- Implementation
|
||||
create l_copy_parameters.make (2)
|
||||
l_copy_parameters.force (a_node.id, "nid")
|
||||
-- l_copy_parameters.force (l_rev - 1, "revision")
|
||||
sql_change (sql_copy_node_to_revision, l_copy_parameters)
|
||||
sql_insert (sql_copy_node_to_revision, l_copy_parameters)
|
||||
|
||||
if not has_error then
|
||||
a_node.set_revision (l_rev)
|
||||
@@ -420,7 +430,7 @@ feature {NONE} -- Implementation
|
||||
-- Update
|
||||
l_parameters.put (a_node.id, "nid")
|
||||
l_parameters.put (a_node.revision, "revision")
|
||||
sql_change (sql_update_node, l_parameters)
|
||||
sql_modify (sql_update_node, l_parameters)
|
||||
|
||||
if not error_handler.has_error then
|
||||
a_node.set_modification_date (now)
|
||||
@@ -431,7 +441,7 @@ feature {NONE} -- Implementation
|
||||
l_parameters.put (a_node.creation_date, "created")
|
||||
l_parameters.put (l_rev, "revision")
|
||||
|
||||
sql_change (sql_insert_node, l_parameters)
|
||||
sql_insert (sql_insert_node, l_parameters)
|
||||
if not error_handler.has_error then
|
||||
a_node.set_modification_date (now)
|
||||
a_node.set_id (last_inserted_node_id)
|
||||
|
||||
Reference in New Issue
Block a user