37 #include "vtkSQLQuery.h"
38 #include "vtkVariant.h"
58 vtkSQLQuery * query = DataBaseConnector->GetQueryInstance();
59 std::stringstream queryScript;
61 queryScript <<
"SHOW DATABASES LIKE '";
62 queryScript << DBName;
65 query->SetQuery( queryScript.str().c_str() );
66 if ( !query->Execute() )
68 itkGenericExceptionMacro(
69 <<
"Does database already exist query failed."
70 << query->GetLastErrorText() );
75 if ( query->NextRow() )
89 std::string ServerName, std::string login,
90 std::string Password, std::string DBName)
92 std::pair< bool, vtkMySQLDatabase * > ConnectionServer =
ConnectToServer(
93 ServerName, login, Password);
95 if ( !ConnectionServer.first )
97 std::cout <<
"Can not connect to the server" << std::endl;
98 std::cout <<
"Debug: In " << __FILE__ <<
", line " << __LINE__;
99 std::cout << std::endl;
103 vtkMySQLDatabase *ServerConnector = ConnectionServer.second;
108 ServerConnector->Close();
109 ServerConnector->Delete();
110 if ( !DatabaseCreated )
115 login, Password, DBName);
116 if ( !Connection.first )
120 vtkMySQLDatabase *DataBaseConnector = Connection.second;
123 DataBaseConnector->Close();
124 DataBaseConnector->Delete();
128 ServerConnector->Close();
129 ServerConnector->Delete();
140 vtkSQLQuery * query = DataBaseConnector->GetQueryInstance();
141 std::stringstream insertQuery;
143 insertQuery <<
"CREATE DATABASE " << DBName;
144 query->SetQuery( insertQuery.str().c_str() );
145 if ( !query->Execute() )
147 itkGenericExceptionMacro(
148 <<
"Create query failed"
149 << query->GetLastErrorText() );
150 std::cout <<
"Debug: In " << __FILE__ <<
", line " << __LINE__;
151 std::cout << std::endl;
254 void Query(vtkMySQLDatabase *DataBaseConnector, std::string queryScript)
256 vtkSQLQuery *query = DataBaseConnector->GetQueryInstance();
258 query->SetQuery( queryScript.c_str() );
259 if ( !query->Execute() )
261 itkGenericExceptionMacro(
262 <<
"Create query failed"
263 << query->GetLastErrorText() );
264 std::cout <<
"Debug: In " << __FILE__ <<
", line " << __LINE__;
265 std::cout << std::endl;
278 "CREATE TABLE IF NOT EXISTS `celltype`(\
279 `CellTypeID` INT NOT NULL AUTO_INCREMENT ,\
280 `Name` TEXT NOT NULL ,\
281 `Description` VARCHAR(1000) NULL ,\
282 PRIMARY KEY (`CellTypeID`)\
292 "CREATE TABLE IF NOT EXISTS `author` (\
293 `AuthorID` INT NOT NULL AUTO_INCREMENT ,\
294 `LastName` VARCHAR(45) NOT NULL ,\
295 `FirstName` VARCHAR(45) NOT NULL ,\
296 `MiddleName` VARCHAR(45) NOT NULL DEFAULT '<none>' ,\
297 UNIQUE INDEX UniqueAuthor (`LastName`,`FirstName`,`MiddleName`),\
298 PRIMARY KEY (`authorID`)\
308 "CREATE TABLE IF NOT EXISTS `subcellulartype` (\
309 `SubCellularID` INT NOT NULL AUTO_INCREMENT ,\
310 `Name` VARCHAR(45) NOT NULL ,\
311 `Description` VARCHAR(1000) NULL ,\
312 PRIMARY KEY (`SubCellularID`)\
322 "CREATE TABLE IF NOT EXISTS `coordinate` (\
323 `CoordID` INT NOT NULL AUTO_INCREMENT ,\
324 `PCoord` TINYINT UNSIGNED NOT NULL DEFAULT 0,\
325 `RCoord` TINYINT UNSIGNED NOT NULL DEFAULT 0,\
326 `CCoord` TINYINT UNSIGNED NOT NULL DEFAULT 0,\
327 `XTileCoord` SMALLINT UNSIGNED NOT NULL DEFAULT 0,\
328 `YTileCoord` SMALLINT UNSIGNED NOT NULL DEFAULT 0,\
329 `ZTileCoord` SMALLINT UNSIGNED NOT NULL DEFAULT 0,\
330 `XCoord` FLOAT UNSIGNED NOT NULL DEFAULT 0,\
331 `YCoord` FLOAT UNSIGNED NOT NULL DEFAULT 0,\
332 `ZCoord` FLOAT UNSIGNED NOT NULL DEFAULT 0,\
333 `TCoord` FLOAT UNSIGNED NOT NULL DEFAULT 0,\
334 PRIMARY KEY (`CoordID`)\
347 "CREATE TABLE IF NOT EXISTS `color` (\
348 `ColorID` INT NOT NULL AUTO_INCREMENT ,\
349 `Name` VARCHAR(45) NULL ,\
350 `Red` TINYINT UNSIGNED NOT NULL ,\
351 `Green` TINYINT UNSIGNED NOT NULL ,\
352 `Blue` TINYINT UNSIGNED NOT NULL ,\
353 `Alpha` TINYINT UNSIGNED NOT NULL ,\
354 `Description` VARCHAR(1000) NULL ,\
355 UNIQUE INDEX UniqueColor (`Red`,`Green`,`Blue`,`Alpha`,`Name`),\
356 PRIMARY KEY (`ColorID`)\
366 "CREATE TABLE IF NOT EXISTS `microscope` (\
367 `Name` VARCHAR(255) NOT NULL ,\
368 PRIMARY KEY (`Name`)\
378 "CREATE TABLE IF NOT EXISTS `project` (\
379 `Name` VARCHAR(255) NOT NULL ,\
380 `Description` VARCHAR(1000) NULL ,\
381 `AuthorID` INT NOT NULL ,\
382 `CreationDate` DATE NOT NULL ,\
383 `DatabaseVersion` VARCHAR(45) NOT NULL ,\
384 PRIMARY KEY (`Name`) ,\
385 INDEX `FK_Project_AuthorID` (`AuthorID` ASC)\
395 "CREATE TABLE IF NOT EXISTS `imagingsession` (\
396 `ImagingSessionID` INT NOT NULL AUTO_INCREMENT ,\
397 `CoordIDMax` INT NOT NULL DEFAULT 0 ,\
398 `CoordIDMin` INT NOT NULL DEFAULT 0,\
399 `Name` VARCHAR(255) NOT NULL ,\
400 `Description` VARCHAR(1000) NULL ,\
401 `ImagesTimeInterval` FLOAT UNSIGNED NULL ,\
402 `RealPixelDepth` FLOAT UNSIGNED NULL ,\
403 `RealPixelHeight` FLOAT UNSIGNED NULL ,\
404 `RealPixelWidth` FLOAT UNSIGNED NULL ,\
405 `ProjectName` VARCHAR(255) NOT NULL ,\
406 `MicroscopeName` VARCHAR(255) NOT NULL ,\
407 `CreationDate` DATETIME NOT NULL ,\
408 `XImageSize` INT NOT NULL,\
409 `YImageSize` INT NOT NULL,\
410 `XTileOverlap` FLOAT UNSIGNED DEFAULT 0,\
411 `YTileOverlap` FLOAT UNSIGNED DEFAULT 0,\
412 `ZTileOverlap` FLOAT UNSIGNED DEFAULT 0,\
413 UNIQUE INDEX UniqueImagingSession (`MicroscopeName`,`CreationDate`),\
414 PRIMARY KEY (`ImagingSessionID`) ,\
415 INDEX `FK_ImagingSession_CoordIDMax` (`CoordIDMax` ASC) ,\
416 INDEX `FK_ImagingSession_CoordIDMin` (`CoordIDMin` ASC) ,\
417 INDEX `FK_ImagingSession_ProjectName` (`ProjectName` ASC) ,\
418 INDEX `FK_ImagingSession_MicroscopeName` (`MicroscopeName` ASC)\
428 "CREATE TABLE IF NOT EXISTS `trackfamily` (\
429 `TrackFamilyID` INT NOT NULL AUTO_INCREMENT ,\
430 `TrackIDMother` INT NOT NULL ,\
431 `TrackIDDaughter1` INT NOT NULL ,\
432 `TrackIDDaughter2` INT NOT NULL ,\
433 PRIMARY KEY (`TrackFamilyID`) ,\
434 INDEX `FK_TrackFamily_TrackIDMother` (`TrackIDMother` ASC) ,\
435 INDEX `FK_TrackFamily_TrackIDDaughter1` (`TrackIDDaughter1` ASC) ,\
436 INDEX `FK_TrackFamily_TrackIDDaughter2` (`TrackIDDaughter2` ASC)\
446 "CREATE TABLE IF NOT EXISTS `track` (\
447 `TrackID` INT NOT NULL AUTO_INCREMENT ,\
448 `LineageID` INT NULL ,\
449 `ColorID` INT NOT NULL DEFAULT '2',\
450 `CoordIDMax` INT NOT NULL ,\
451 `CoordIDMin` INT NOT NULL ,\
452 `TrackFamilyID` INT NULL ,\
453 `Points` LONGTEXT NULL ,\
454 `ImagingSessionID` INT NOT NULL ,\
455 PRIMARY KEY (`TrackID`) ,\
456 INDEX `FK_Track_ColorID` (`ColorID` ASC) ,\
457 INDEX `FK_Track_LineageID` (`LineageID` ASC) ,\
458 INDEX `FK_Track_CoordIDMax` (`CoordIDMax` ASC) ,\
459 INDEX `FK_Track_CoordIDMin` (`CoordIDMin` ASC) ,\
460 INDEX `FK_Track_TrackFamilyID` (`TrackFamilyID` ASC) ,\
461 INDEX `FK_Track_ImagingSessionID` (`ImagingSessionID` ASC)\
471 "CREATE TABLE IF NOT EXISTS `mesh` (\
472 `MeshID` INT NULL AUTO_INCREMENT ,\
473 `CellTypeID` INT NOT NULL DEFAULT '1',\
474 `SubCellularID` INT NOT NULL DEFAULT '1',\
475 `CoordIDMax` INT NOT NULL ,\
476 `CoordIDMin` INT NOT NULL ,\
477 `ColorID` INT NOT NULL DEFAULT '1',\
478 `TrackID` INT NULL ,\
479 `ImagingSessionID` INT NOT NULL ,\
480 `Points` LONGTEXT NULL ,\
481 PRIMARY KEY (`MeshID`) ,\
482 INDEX `FK_Mesh_CellTypeID` (`CellTypeID` ASC) ,\
483 INDEX `FK_Mesh_CoordIDMax` (`CoordIDMax` ASC) ,\
484 INDEX `FK_Mesh_CoordIDMin` (`CoordIDMin` ASC) ,\
485 INDEX `FK_Mesh_ColorID` (`ColorID` ASC) ,\
486 INDEX `FK_Mesh_TrackID` (`TrackID` ASC) ,\
487 INDEX `FK_Mesh_ImagingSessionID` (`ImagingSessionID` ASC) ,\
488 INDEX `FK_Mesh_SubCellularID` (`SubCellularID` ASC)\
498 "CREATE TABLE IF NOT EXISTS `contour` (\
499 `ContourID` INT NOT NULL AUTO_INCREMENT ,\
501 `ImagingSessionID` INT NULL ,\
502 `ColorID` INT NULL ,\
503 `CoordIDMax` INT NOT NULL ,\
504 `CoordIDMin` INT NOT NULL ,\
505 `Points` LONGTEXT NOT NULL ,\
506 PRIMARY KEY (`ContourID`) ,\
507 INDEX `FK_Contour_MeshID` (`MeshID` ASC) ,\
508 INDEX `FK_Contour_CoordIDMax` (`CoordIDMax` ASC) ,\
509 INDEX `FK_Contour_CoordIDMin` (`CoordIDMin` ASC) ,\
510 INDEX `FK_Contour_ImagingSessionID` (`ImagingSessionID` ASC) \
520 "CREATE TABLE IF NOT EXISTS `channel` (\
521 `ChannelID` INT NOT NULL AUTO_INCREMENT ,\
522 `Name` VARCHAR(45) NULL ,\
523 `ImagingSessionID` INT NOT NULL,\
524 `ColorID` INT NOT NULL ,\
525 `ChannelNumber` INT NOT NULL ,\
526 `NumberOfBits` TINYINT UNSIGNED NOT NULL ,\
527 UNIQUE INDEX UniqueChannel (`ImagingSessionID`,`ChannelNumber`),\
528 PRIMARY KEY (`ChannelID`) ,\
529 INDEX `FK_Channel_ColorID` (`ColorID` ASC), \
530 INDEX `FK_Channel_ImagingSessionID`(`ImagingSessionID` ASC)\
540 "CREATE TABLE IF NOT EXISTS `image` (\
541 `ImageID` INT NOT NULL AUTO_INCREMENT ,\
542 `ImagingSessionID` INT NOT NULL ,\
543 `CoordIDMin` INT NOT NULL ,\
544 `Filename` TEXT NOT NULL ,\
545 `ChannelID` INT NOT NULL ,\
546 PRIMARY KEY (`ImageID`) ,\
547 INDEX `FK_Image_ImagingSessionID` (`ImagingSessionID` ASC) ,\
548 INDEX `FK_Image_CoordIDMin` (`CoordIDMin` ASC) ,\
549 INDEX `FK_Image_ChannelID` (`ChannelID` ASC)\
559 "CREATE TABLE IF NOT EXISTS `lineage` (\
560 `LineageID` INT NOT NULL AUTO_INCREMENT ,\
561 `CoordIDMax` INT NOT NULL ,\
562 `CoordIDMin` INT NOT NULL ,\
563 `ColorID` INT NOT NULL DEFAULT '3',\
564 `Points` LONGTEXT NOT NULL ,\
565 `TrackIDRoot` INT NOT NULL ,\
566 `ImagingSessionID` INT NOT NULL ,\
567 PRIMARY KEY (`LineageID`) ,\
568 INDEX `FK_Lineage_CoordIDMax` (`CoordIDMax` ASC) ,\
569 INDEX `FK_Lineage_CoordIDMin` (`CoordIDMin` ASC) ,\
570 INDEX `FK_Lineage_ColorID` (`ColorID` ASC) ,\
571 INDEX `FK_Lineage_TrackIDRoot` (`TrackIDRoot` ASC) ,\
572 INDEX `FK_Lineage_ImagingSessionID` (`ImagingSessionID` ASC)\
582 "CREATE TABLE IF NOT EXISTS `bookmark` (\
583 `BookmarkID` INT NOT NULL AUTO_INCREMENT ,\
584 `ImagingSessionID` INT NOT NULL ,\
585 `CoordID` INT NOT NULL ,\
586 `Name` VARCHAR(45) NULL ,\
587 `Description` VARCHAR(1000) NULL ,\
588 `CreationDate` DATETIME NOT NULL,\
589 PRIMARY KEY (`BookmarkID`) ,\
590 INDEX `FK_Bookmark_ImagingSessionID` (`ImagingSessionID` ASC) ,\
591 INDEX `FK_Bookmark_CoordID` (`CoordID` ASC) \
601 "CREATE TABLE IF NOT EXISTS `intensity` (\
602 `IntensityID` INT NOT NULL AUTO_INCREMENT ,\
603 `Value` INT NOT NULL ,\
604 `MeshID` INT NOT NULL ,\
605 `ChannelID` INT NOT NULL ,\
606 PRIMARY KEY (`IntensityID`) ,\
607 INDEX `FK_Intensity_MeshID` (`MeshID` ASC) ,\
608 INDEX `FK_Intensity_ChannelID` (`ChannelID` ASC) \
618 "CREATE TABLE IF NOT EXISTS `valuetype` (\
619 `ValueTypeID` INT NOT NULL AUTO_INCREMENT ,\
620 `Name` VARCHAR(45) NOT NULL ,\
621 `Description` VARCHAR(1000) NULL ,\
622 PRIMARY KEY (`ValueTypeID`) \
632 "CREATE TABLE IF NOT EXISTS `calculatedvalue` (\
633 `CalculatedValueID` INT NOT NULL AUTO_INCREMENT ,\
634 `ValueTypeID` INT NOT NULL ,\
635 PRIMARY KEY (`CalculatedValueID`) ,\
636 INDEX `FK_CalculatedValue_ValueTypeID` (`ValueTypeID` ASC)\
646 "CREATE TABLE IF NOT EXISTS `valuepervectorcoord` (\
647 `ValuePerVectorCoordID` INT NOT NULL AUTO_INCREMENT ,\
648 `Name` VARCHAR(45) NULL ,\
649 `VectorCoordNumber` INT NOT NULL ,\
650 `Value` DECIMAL(3) NOT NULL ,\
651 `CalculatedValueID` INT NOT NULL ,\
652 PRIMARY KEY (`ValuePerVectorCoordID`) ,\
653 INDEX `FK_ValuePerVectorCoord_CalculatedValueID` (`CalculatedValueID` ASC) \
663 "CREATE TABLE IF NOT EXISTS `meshvalue` (\
664 `CalculatedValueID` INT NOT NULL ,\
665 `MeshID` INT NOT NULL ,\
666 PRIMARY KEY (`CalculatedValueID`, `MeshID`),\
667 INDEX `FK_MeshValue_MeshID` (`MeshID` ASC) ,\
668 INDEX `FK_MeshValue_CalculatedValueID` (`CalculatedValueID` ASC)\
678 "CREATE TABLE IF NOT EXISTS `trackvalue` (\
679 `TrackID` INT NOT NULL ,\
680 `CalculatedValueID` INT NOT NULL ,\
681 PRIMARY KEY (`TrackID`, `CalculatedValueID`) ,\
682 INDEX `FK_TrackValue_TrackID` (`TrackID` ASC) ,\
683 INDEX `CalculatedValueID` (`CalculatedValueID` ASC)\
693 "CREATE TABLE IF NOT EXISTS `imagevalue` (\
694 `ImageID` INT NOT NULL ,\
695 `CalculatedValueID` INT NOT NULL ,\
696 PRIMARY KEY (`ImageID`, `CalculatedValueID`),\
697 INDEX `FK_ImageValue_ImageID` (`ImageID` ASC) ,\
698 INDEX `FK_ImageValue_CalculatedValueID` (`CalculatedValueID` ASC)\
708 "CREATE TABLE IF NOT EXISTS `imagingsessionvalue` (\
709 `ImagingSessionID` INT NOT NULL ,\
710 `CalculatedValueID` INT NOT NULL ,\
711 PRIMARY KEY (`ImagingSessionID`, `CalculatedValueID`) ,\
712 INDEX `ImagingSessionID` (`ImagingSessionID` ASC) ,\
713 INDEX `CalculatedValueID` (`CalculatedValueID` ASC)\
723 "CREATE TABLE IF NOT EXISTS `contourvalue` (\
724 `ContourID` INT NOT NULL ,\
725 `CalculatedValueID` INT NOT NULL ,\
726 PRIMARY KEY (`ContourID`, `CalculatedValueID`),\
727 INDEX `FK_ContourValue_ContourID` (`ContourID` ASC) ,\
728 INDEX `FK_ContourValue_CalculatedValueID` (`CalculatedValueID` ASC)\
738 "CREATE TABLE IF NOT EXISTS `lineagevalue` (\
739 `LineageID` INT NOT NULL ,\
740 `CalculatedValueID` INT NOT NULL ,\
741 PRIMARY KEY (`LineageID`, `CalculatedValueID`),\
742 INDEX `FK_LineageValue_LineageID` (`LineageID` ASC) ,\
743 INDEX `FK_LineageValue_CalculatedValueID` (`CalculatedValueID` ASC)\
753 "ALTER TABLE `project` ADD\
754 CONSTRAINT `FK_Project_AuthorID`\
755 FOREIGN KEY (`AuthorID`)\
756 REFERENCES `author`(`AuthorID`)\
768 "ALTER TABLE `imagingsession` ADD\
769 CONSTRAINT `FK_ImagingSession_CoordIDMax`\
770 FOREIGN KEY (`CoordIDMax`)\
771 REFERENCES `coordinate`(`CoordID`)\
783 "ALTER TABLE `imagingsession` ADD\
784 CONSTRAINT `FK_ImagingSession_CoordIDMin`\
785 FOREIGN KEY (`CoordIDMin`)\
786 REFERENCES `coordinate`(`CoordID`)\
798 "ALTER TABLE `imagingsession` ADD\
799 CONSTRAINT `FK_ImagingSession_ProjectName`\
800 FOREIGN KEY (`ProjectName`)\
801 REFERENCES `project`(`Name`)\
813 "ALTER TABLE `imagingsession` ADD\
814 CONSTRAINT `FK_ImagingSession_MicroscopeName`\
815 FOREIGN KEY (`MicroscopeName`)\
816 REFERENCES `microscope`(`Name`)\
828 "ALTER TABLE `trackfamily` ADD\
829 CONSTRAINT `FK_TrackFamily_TrackIDMother`\
830 FOREIGN KEY (`TrackIDMother`)\
831 REFERENCES `track`(`TrackID`)\
843 "ALTER TABLE `trackfamily` ADD\
844 CONSTRAINT `FK_TrackFamily_TrackIDDaughter1`\
845 FOREIGN KEY (`TrackIDDaughter1`)\
846 REFERENCES `track`(`TrackID`)\
858 "ALTER TABLE `trackfamily` ADD\
859 CONSTRAINT `FK_TrackFamily_TrackIDDaughter2`\
860 FOREIGN KEY (`TrackIDDaughter2`)\
861 REFERENCES `track`(`TrackID`)\
873 "ALTER TABLE `track` ADD\
874 CONSTRAINT `FK_Track_ColorID`\
875 FOREIGN KEY (`ColorID`)\
876 REFERENCES `color`(`ColorID`)\
888 "ALTER TABLE `track` ADD\
889 CONSTRAINT `FK_Track_LineageID`\
890 FOREIGN KEY (`LineageID`)\
891 REFERENCES `lineage`(`LineageID`)\
903 "ALTER TABLE `track` ADD\
904 CONSTRAINT `FK_Track_CoordIDMax`\
905 FOREIGN KEY (`CoordIDMax`)\
906 REFERENCES `coordinate`(`CoordID`)\
918 "ALTER TABLE `track` ADD\
919 CONSTRAINT `FK_Track_CoordIDMin`\
920 FOREIGN KEY (`CoordIDMin`)\
921 REFERENCES `coordinate`(`CoordID`)\
933 "ALTER TABLE `track` ADD\
934 CONSTRAINT `FK_Track_TrackFamilyID`\
935 FOREIGN KEY (`TrackFamilyID`)\
936 REFERENCES `trackfamily`(`TrackFamilyID`)\
948 "ALTER TABLE `track` ADD\
949 CONSTRAINT `FK_Track_ImagingSessionID`\
950 FOREIGN KEY (`ImagingSessionID`)\
951 REFERENCES `imagingsession`(`ImagingSessionID`)\
963 "ALTER TABLE `mesh` ADD\
964 CONSTRAINT `FK_Mesh_CellTypeID`\
965 FOREIGN KEY (`CellTypeID`)\
966 REFERENCES `celltype`(`CellTypeID`)\
978 "ALTER TABLE `mesh` ADD\
979 CONSTRAINT `FK_Mesh_SubCellularID`\
980 FOREIGN KEY (`SubCellularID`)\
981 REFERENCES `subcellulartype`(`SubCellularID`)\
993 "ALTER TABLE `mesh` ADD\
994 CONSTRAINT `FK_Mesh_CoordIDMax`\
995 FOREIGN KEY (`CoordIDMax`)\
996 REFERENCES `coordinate`(`CoordID`)\
1008 "ALTER TABLE `mesh` ADD\
1009 CONSTRAINT `FK_Mesh_CoordIDMin`\
1010 FOREIGN KEY (`CoordIDMin`)\
1011 REFERENCES `coordinate`(`CoordID`)\
1012 ON DELETE NO ACTION\
1013 ON UPDATE NO ACTION\
1023 "ALTER TABLE `mesh` ADD\
1024 CONSTRAINT `FK_Mesh_ColorID`\
1025 FOREIGN KEY (`ColorID`)\
1026 REFERENCES `color`(`ColorID`)\
1027 ON DELETE NO ACTION\
1028 ON UPDATE NO ACTION\
1038 "ALTER TABLE `mesh` ADD\
1039 CONSTRAINT `FK_Mesh_TrackID`\
1040 FOREIGN KEY (`TrackID`)\
1041 REFERENCES `track`(`TrackID`)\
1042 ON DELETE NO ACTION\
1043 ON UPDATE NO ACTION\
1053 "ALTER TABLE `mesh` ADD\
1054 CONSTRAINT `FK_Mesh_ImagingSessionID`\
1055 FOREIGN KEY (`ImagingSessionID`)\
1056 REFERENCES `imagingSession`(`ImagingSessionID`)\
1057 ON DELETE NO ACTION\
1058 ON UPDATE NO ACTION\
1068 "ALTER TABLE `contour` ADD\
1069 CONSTRAINT `FK_Contour_MeshID`\
1070 FOREIGN KEY (`MeshID`)\
1071 REFERENCES `mesh`(`MeshID`)\
1072 ON DELETE NO ACTION\
1073 ON UPDATE NO ACTION\
1083 "ALTER TABLE `contour` ADD\
1084 CONSTRAINT `FK_Contour_CoordIDMax`\
1085 FOREIGN KEY (`CoordIDMax`)\
1086 REFERENCES `coordinate`(`CoordID`)\
1087 ON DELETE NO ACTION\
1088 ON UPDATE NO ACTION\
1098 "ALTER TABLE `contour` ADD\
1099 CONSTRAINT `FK_Contour_CoordIDMin`\
1100 FOREIGN KEY (`CoordIDMin`)\
1101 REFERENCES `coordinate`(`CoordID`)\
1102 ON DELETE NO ACTION\
1103 ON UPDATE NO ACTION\
1113 "ALTER TABLE `contour` ADD\
1114 CONSTRAINT `FK_Contour_ImagingSessionID`\
1115 FOREIGN KEY (`ImagingSessionID`)\
1116 REFERENCES `imagingsession`(`ImagingSessionID`)\
1117 ON DELETE NO ACTION\
1118 ON UPDATE NO ACTION\
1128 "ALTER TABLE `channel` ADD\
1129 CONSTRAINT `FK_Channel_ColorID`\
1130 FOREIGN KEY (`ColorID`)\
1131 REFERENCES `color`(`ColorID`)\
1132 ON DELETE NO ACTION\
1133 ON UPDATE NO ACTION\
1143 "ALTER TABLE `channel` ADD\
1144 CONSTRAINT `FK_Channel_ImagingSessionID`\
1145 FOREIGN KEY (`ImagingSessionID`)\
1146 REFERENCES `imagingsession`(`ImagingSessionID`)\
1147 ON DELETE NO ACTION\
1148 ON UPDATE NO ACTION\
1158 "ALTER TABLE `image` ADD\
1159 CONSTRAINT `FK_Image_ImagingSessionID`\
1160 FOREIGN KEY (`ImagingSessionID`)\
1161 REFERENCES `imagingsession`(`ImagingSessionID`)\
1162 ON DELETE NO ACTION\
1163 ON UPDATE NO ACTION\
1173 "ALTER TABLE `image` ADD\
1174 CONSTRAINT `FK_Image_CoordIDMin`\
1175 FOREIGN KEY (`CoordIDMin`)\
1176 REFERENCES `coordinate`(`CoordID`)\
1177 ON DELETE NO ACTION\
1178 ON UPDATE NO ACTION\
1188 "ALTER TABLE `image` ADD\
1189 CONSTRAINT `FK_Image_ChannelID`\
1190 FOREIGN KEY (`ChannelID`)\
1191 REFERENCES `channel`(`ChannelID`)\
1192 ON DELETE NO ACTION\
1193 ON UPDATE NO ACTION\
1203 "ALTER TABLE `lineage` ADD\
1204 CONSTRAINT `FK_Lineage_CoordIDMax`\
1205 FOREIGN KEY (`CoordIDMax`)\
1206 REFERENCES `coordinate`(`CoordID`)\
1207 ON DELETE NO ACTION\
1208 ON UPDATE NO ACTION\
1218 "ALTER TABLE `lineage` ADD\
1219 CONSTRAINT `FK_Lineage_CoordIDMin`\
1220 FOREIGN KEY (`CoordIDMin`)\
1221 REFERENCES `coordinate`(`CoordID`)\
1222 ON DELETE NO ACTION\
1223 ON UPDATE NO ACTION\
1233 "ALTER TABLE `lineage` ADD\
1234 CONSTRAINT `FK_Lineage_ColorID`\
1235 FOREIGN KEY (`ColorID`)\
1236 REFERENCES `color`(`ColorID`)\
1237 ON DELETE NO ACTION\
1238 ON UPDATE NO ACTION\
1248 "ALTER TABLE `lineage` ADD\
1249 CONSTRAINT `FK_Lineage_TrackIDRoot`\
1250 FOREIGN KEY (`TrackIDRoot`)\
1251 REFERENCES `track`(`TrackID`)\
1252 ON DELETE NO ACTION\
1253 ON UPDATE NO ACTION\
1263 "ALTER TABLE `lineage` ADD\
1264 CONSTRAINT `FK_Lineage_ImagingSessionID`\
1265 FOREIGN KEY (`ImagingSessionID`)\
1266 REFERENCES `imagingsession`(`ImagingSessionID`)\
1267 ON DELETE NO ACTION\
1268 ON UPDATE NO ACTION\
1278 "ALTER TABLE `bookmark` ADD\
1279 CONSTRAINT `FK_Bookmark_ImagingSessionID`\
1280 FOREIGN KEY (`ImagingSessionID`)\
1281 REFERENCES `imagingsession`(`ImagingSessionID`)\
1282 ON DELETE NO ACTION\
1283 ON UPDATE NO ACTION\
1293 "ALTER TABLE `bookmark` ADD\
1294 CONSTRAINT `FK_Bookmark_CoordID`\
1295 FOREIGN KEY (`CoordID`)\
1296 REFERENCES `coordinate`(`CoordID`)\
1297 ON DELETE NO ACTION\
1298 ON UPDATE NO ACTION\
1308 "ALTER TABLE `intensity` ADD\
1309 CONSTRAINT `FK_Intensity_MeshID`\
1310 FOREIGN KEY (`MeshID`)\
1311 REFERENCES `mesh`(`MeshID`)\
1312 ON DELETE NO ACTION\
1313 ON UPDATE NO ACTION\
1323 "ALTER TABLE `intensity` ADD\
1324 CONSTRAINT `FK_Intensity_ChannelID`\
1325 FOREIGN KEY (`ChannelID`)\
1326 REFERENCES `channel`(`ChannelID`)\
1327 ON DELETE NO ACTION\
1328 ON UPDATE NO ACTION\
1338 "ALTER TABLE `calculatedvalue` ADD\
1339 CONSTRAINT `FK_CalculatedValue_ValueTypeID`\
1340 FOREIGN KEY (`ValueTypeID`)\
1341 REFERENCES `valuetype`(`ValueTypeID`)\
1342 ON DELETE NO ACTION\
1343 ON UPDATE NO ACTION\
1353 "ALTER TABLE `valuepervectorcoord` ADD\
1354 CONSTRAINT `FK_ValuePerVectorCoord_CalculatedValueID`\
1355 FOREIGN KEY (`CalculatedValueID`)\
1356 REFERENCES `calculatedvalue`(`CalculatedValueID`)\
1357 ON DELETE NO ACTION\
1358 ON UPDATE NO ACTION\
1368 "ALTER TABLE `meshvalue` ADD\
1369 CONSTRAINT `FK_MeshValue_MeshID`\
1370 FOREIGN KEY (`MeshID`)\
1371 REFERENCES `mesh`(`MeshID`)\
1372 ON DELETE NO ACTION\
1373 ON UPDATE NO ACTION\
1383 "ALTER TABLE `meshvalue` ADD\
1384 CONSTRAINT `FK_MeshValue_CalculatedValueID`\
1385 FOREIGN KEY (`CalculatedValueID`)\
1386 REFERENCES `calculatedvalue`(`CalculatedValueID`)\
1387 ON DELETE NO ACTION\
1388 ON UPDATE NO ACTION\
1398 "ALTER TABLE `trackvalue` ADD\
1399 CONSTRAINT `FK_TrackValue_TrackID`\
1400 FOREIGN KEY (`TrackID`)\
1401 REFERENCES `track`(`TrackID`)\
1402 ON DELETE NO ACTION\
1403 ON UPDATE NO ACTION\
1413 "ALTER TABLE `trackvalue` ADD\
1414 CONSTRAINT `FK_TrackValue_CalculatedValueID`\
1415 FOREIGN KEY (`CalculatedValueID`)\
1416 REFERENCES `calculatedvalue`(`CalculatedValueID`)\
1417 ON DELETE NO ACTION\
1418 ON UPDATE NO ACTION\
1428 "ALTER TABLE `imagevalue` ADD\
1429 CONSTRAINT `FK_ImageValue_ImageID`\
1430 FOREIGN KEY (`ImageID`)\
1431 REFERENCES `image`(`ImageID`)\
1432 ON DELETE NO ACTION\
1433 ON UPDATE NO ACTION\
1443 "ALTER TABLE `imagevalue` ADD\
1444 CONSTRAINT `FK_ImageValue_CalculatedValueID`\
1445 FOREIGN KEY (`CalculatedValueID`)\
1446 REFERENCES `calculatedvalue`(`CalculatedValueID`)\
1447 ON DELETE NO ACTION\
1448 ON UPDATE NO ACTION\
1458 "ALTER TABLE `imagingsessionvalue` ADD\
1459 CONSTRAINT `FK_ImagingSessionValue_ImagingSessionID`\
1460 FOREIGN KEY (`ImagingSessionID`)\
1461 REFERENCES `imagingsession`(`ImagingSessionID`)\
1462 ON DELETE NO ACTION\
1463 ON UPDATE NO ACTION\
1473 "ALTER TABLE `imagingsessionvalue` ADD\
1474 CONSTRAINT `FK_ImagingSessionValue_CalculatedValueID`\
1475 FOREIGN KEY (`CalculatedValueID`)\
1476 REFERENCES `calculatedvalue`(`CalculatedValueID`)\
1477 ON DELETE NO ACTION\
1478 ON UPDATE NO ACTION\
1488 "ALTER TABLE `contourvalue` ADD\
1489 CONSTRAINT `FK_ContourValue_ContourID`\
1490 FOREIGN KEY (`ContourID`)\
1491 REFERENCES `contour`(`ContourID`)\
1492 ON DELETE NO ACTION\
1493 ON UPDATE NO ACTION\
1503 "ALTER TABLE `contourvalue` ADD\
1504 CONSTRAINT `FK_ContourValue_CalculatedValueID`\
1505 FOREIGN KEY (`CalculatedValueID`)\
1506 REFERENCES `calculatedvalue`(`CalculatedValueID`)\
1507 ON DELETE NO ACTION\
1508 ON UPDATE NO ACTION\
1518 "ALTER TABLE `lineagevalue` ADD\
1519 CONSTRAINT `FK_LineageValue_LineageID`\
1520 FOREIGN KEY (`LineageID`)\
1521 REFERENCES `lineage`(`LineageID`)\
1522 ON DELETE NO ACTION\
1523 ON UPDATE NO ACTION\
1533 "ALTER TABLE `lineagevalue` ADD\
1534 CONSTRAINT `FK_LineageValue_CalculatedValueID`\
1535 FOREIGN KEY (`CalculatedValueID`)\
1536 REFERENCES `calculatedvalue`(`CalculatedValueID`)\
1537 ON DELETE NO ACTION\
1538 ON UPDATE NO ACTION\
std::string ImageFKCoordIDMin()
std::string LineageValueFKCalculatedValue()
std::string TrackValueFKTrack()
std::string LineageValueTable()
std::string ContourValueTable()
std::string BookmarkTable()
std::string ImagingSessionFKProjectName()
std::string ChannelFKImagingSession()
std::string CoordinateTable()
std::string ValuePerVectorCoordTable()
std::string SubCellularTypeTable()
std::string ContourValueFKCalculatedValue()
std::string IntensityFKChannel()
std::string ColorTableScript()
void CreateTables(vtkMySQLDatabase *DataBaseConnector)
std::string ValueperVectorCoordFKCalculatedValue()
std::string ProjectTable()
std::string ChannelTable()
std::string BookmarkFKImagingSession()
std::string TrackFKColor()
std::string ImagingSessionFKCoordIDMax()
std::string ImageValueFKCalculatedValue()
std::string ImagingSessionValueFKCalculatedValue()
std::string LineageTable()
std::string ImageValueFKImage()
std::string MeshFKImagingSession()
std::string ImageFKImagingSession()
std::string CalculatedValueFKValueType()
std::string AuthorTable()
bool CreateDataBase(vtkMySQLDatabase *DataBaseConnector, std::string DBName)
std::string ContourFKCoordIDMin()
std::string ImagingSessionFKCoordIDMin()
std::string MeshFKTrackID()
std::string ContourValueFKContour()
std::string ContourFKCoordIDMax()
std::string LineageFKColor()
std::string ImagingSessionFKMicroscopeName()
std::string MeshFKSubCellType()
std::string MeshFKCoordIDMax()
std::string LineageFKCoordIDMin()
std::string TrackFKCoordIDMax()
std::string LineageFKTrackRoot()
std::string LineageValueFKLineage()
std::string MeshFKCoordIDMin()
std::string MeshValueFKMesh()
std::string BookmarkFKCoord()
std::string ChannelFKColor()
std::string CalculatedValueTable()
void CreateForeignKeys(vtkMySQLDatabase *DataBaseConnector)
std::string ImagingSessionValueFKImagingSession()
std::string TrackFamilyFKTrackIDDaughter1()
std::pair< bool, vtkMySQLDatabase * > ConnectToDatabase(std::string ServerName, std::string login, std::string Password, std::string DBName)
std::string IntensityTable()
std::string CellTypeTable()
std::string ImagingSessionTable()
std::string TrackFamilyFKTrackIDDaughter2()
std::string ImageFKChannel()
bool DoesTableExist(vtkMySQLDatabase *DatabaseConnector, std::string TableName)
std::string MeshFKCellType()
std::string ImageValueTable()
std::string TrackFKTrackFamily()
std::string TrackFKCoordIDMin()
std::pair< bool, vtkMySQLDatabase * > ConnectToServer(std::string ServerName, std::string login, std::string Password)
std::string MeshFKColor()
void Query(vtkMySQLDatabase *DataBaseConnector, std::string queryScript)
std::string TrackFamilyTable()
std::string LineageFKImagingSession()
std::string ContourFKImagingSession()
std::string ValueTypeTable()
std::string ContourFKMesh()
std::string MeshValueTable()
std::string TrackFamilyFKTrackIDMother()
std::string ContourTable()
std::string TrackFKImagingSession()
std::string LineageFKCoordIDMax()
std::string MeshValueFKCalculatedValue()
std::string ImagingSessionValueTable()
std::string TrackValueFKCalculatedValue()
bool CreateGoFigureDataBase(std::string ServerName, std::string login, std::string Password, std::string DBName)
bool DoesDatabaseExit(vtkMySQLDatabase *DataBaseConnector, std::string DBName)
bool IsDatabaseOfGoFigureType(vtkMySQLDatabase *DatabaseConnector)
std::string TrackValueTable()
std::string IntensityFKMesh()
std::string TrackFKLineage()
std::string MicroscopeTable()