소스 검색

ENH: create SQLite connection for DICOM-DB

Marco Nolden 15 년 전
부모
커밋
8f4b16c673
2개의 변경된 파일42개의 추가작업 그리고 4개의 파일을 삭제
  1. 36 3
      Libs/DICOM/Core/qCTKDCMTK.cxx
  2. 6 1
      Libs/DICOM/Core/qCTKDCMTK.h

+ 36 - 3
Libs/DICOM/Core/qCTKDCMTK.cxx

@@ -2,26 +2,59 @@
 // qCTKDCMTK includes
 #include "qCTKDCMTK.h"
 
+// Qt includes
+#include <QSqlDatabase>
+#include <QSqlError>
+#include <iostream>
+
 //----------------------------------------------------------------------------
 class qCTKDCMTKPrivate: public qCTKPrivate<qCTKDCMTK>
 {
 public:
-  qCTKDCMTKPrivate(){}
+  qCTKDCMTKPrivate(); 
+  QSqlDatabase  Database;
+  QString       DatabaseFileName;
+  QString       LastError;
 };
 
 //----------------------------------------------------------------------------
 // qCTKDCMTKPrivate methods
-
+qCTKDCMTKPrivate::qCTKDCMTKPrivate() 
+{
+}
 
 //----------------------------------------------------------------------------
 // qCTKDCMTKWidget methods
 
-qCTKDCMTK::qCTKDCMTK(QObject* _parent):Superclass(_parent)
+qCTKDCMTK::qCTKDCMTK(QObject* _parent): Superclass(_parent)
 {
   QCTK_INIT_PRIVATE(qCTKDCMTK);
 }
 
+//----------------------------------------------------------------------------
+qCTKDCMTK::
 qCTKDCMTK::~qCTKDCMTK()
 {
 }
 
+//----------------------------------------------------------------------------
+QCTK_SET_CXX(qCTKDCMTK, const QString&, setDatabaseFileName, DatabaseFileName);
+
+//----------------------------------------------------------------------------
+bool qCTKDCMTK::openDatabase(const QString& databaseFileName) 
+{
+  QCTK_D(qCTKDCMTK);
+  d->Database = QSqlDatabase::addDatabase("QSQLITE","DICOM-DB");
+  d->Database.setDatabaseName(databaseFileName);
+  if ( ! (d->Database.open()) )
+    {
+    d->LastError = d->Database.lastError().text();
+    return false;
+    }
+  return true;
+}
+const QString& qCTKDCMTK::GetLastError() const {
+  QCTK_D(const qCTKDCMTK);
+  return d->LastError; 
+}
+

+ 6 - 1
Libs/DICOM/Core/qCTKDCMTK.h

@@ -17,7 +17,12 @@ public:
   typedef QObject Superclass;
   explicit qCTKDCMTK(QObject* parent = 0);
   virtual ~qCTKDCMTK();
-
+  
+  /// 
+  ///
+  void setDatabaseFileName(const QString& file);
+  virtual bool openDatabase(const QString& file);
+  const QString& GetLastError() const; 
 private:
   QCTK_DECLARE_PRIVATE(qCTKDCMTK);
 };