changeset 6162:4cf3bfb29474 attach-custom-data

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 09 Jun 2025 20:59:35 +0200
parents c07e55229823
children dbe67b2c2d9c
files OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp
diffstat 1 files changed, 19 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp	Sat Jun 07 18:50:42 2025 +0200
+++ b/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp	Mon Jun 09 20:59:35 2025 +0200
@@ -534,6 +534,19 @@
     }
 
 
+    static void ReadCustomData(FileInfo& info,
+                               SQLite::Statement& statement,
+                               int column)
+    {
+      std::string customData;
+      if (!statement.ColumnIsNull(column) &&
+          statement.ColumnBlobAsString(column, &customData))
+      {
+        info.SwapCustomData(customData);
+      }
+    }
+
+
     virtual void ExecuteFind(FindResponse& response,
                              const FindRequest& request,
                              const Capabilities& capabilities) ORTHANC_OVERRIDE
@@ -1102,12 +1115,7 @@
                           s.ColumnInt64(C11_BIG_INT_2), s.ColumnString(C4_STRING_2),
                           static_cast<CompressionType>(s.ColumnInt(C8_INT_2)),
                           s.ColumnInt64(C10_BIG_INT_1), s.ColumnString(C5_STRING_3));
-
-            std::string customData;
-            if (s.ColumnBlobAsString(C6_STRING_4, &customData))
-            {
-              file.SwapCustomData(customData);
-            }
+            ReadCustomData(file, s, C6_STRING_4);
 
             res.AddAttachment(file, s.ColumnInt(C9_INT_3));
           }; break;
@@ -1268,12 +1276,7 @@
                           s.ColumnInt64(C11_BIG_INT_2), s.ColumnString(C4_STRING_2),
                           static_cast<CompressionType>(s.ColumnInt(C8_INT_2)),
                           s.ColumnInt64(C10_BIG_INT_1), s.ColumnString(C5_STRING_3));
-
-            std::string customData;
-            if (s.ColumnBlobAsString(C6_STRING_4, &customData))
-            {
-              file.SwapCustomData(customData);
-            }
+            ReadCustomData(file, s, C6_STRING_4);
 
             res.AddOneInstanceAttachment(file);
           }; break;
@@ -1396,7 +1399,8 @@
     
       if (s.Step())
       { 
-        if (!s.ColumnBlobAsString(C6_STRING_4, &customData))
+        if (s.ColumnIsNull(C6_STRING_4) ||
+            !s.ColumnBlobAsString(C6_STRING_4, &customData))
         {
           customData.clear();
         }
@@ -1814,13 +1818,7 @@
                               static_cast<CompressionType>(s.ColumnInt(2)),
                               s.ColumnInt64(3),
                               s.ColumnString(5));
-
-        std::string customData;
-        if (s.ColumnBlobAsString(7, &customData))
-        {
-          attachment.SwapCustomData(customData);
-        }
-
+        ReadCustomData(attachment, s, 7);
         revision = s.ColumnInt(6);
         return true;
       }
@@ -1848,13 +1846,7 @@
                               static_cast<CompressionType>(s.ColumnInt(2)),
                               s.ColumnInt64(3),
                               s.ColumnString(5));
-
-        std::string customData;
-        if (s.ColumnBlobAsString(7, &customData))
-        {
-          attachment.SwapCustomData(customData);
-        }
-
+        ReadCustomData(attachment, s, 7);
         revision = s.ColumnInt(6);
         return true;
       }