Hallo zusammen!
Ich möchte ein Programm schreiben, welches zwischen verschiedenen Versionen derselben Anwendung unterscheidet und die Namen der geänderten Dateien der Software ausgibt. Dazu habe ich mich entschlossen mit einer Datenbank zu arbeiten, um die verschiedenen Versionen und die Änderungen zu speichern. In diesem Fall mit Access (Access 2000-Dateiformat).
Das Design der Tabelle sieht so aus:
Major | Minor | Patch | Build | Files
----------------------------------------------------
0 | 1 | 0 | 21 | test1.txt
0 | 1 | 1 | 1 | test1.txt;test1.wav
0 | 2 | 0 | 14 | test1.bmp;test1.xls
Angenommen ich habe Version 0.1.1-1. Dann soll mir die Datenbank die Namen aller Dateien zurückliefern, die sich seit dieser Version geändert haben. In diesem Fall ist das der unterste Eintrag der Version 0.2.0-14.
Aber wie bekomme ich Access dazu, mir die Namen aller Dateien zu geben, die sich geändert haben?
In einer Programmiersprache würde die Abfrage so aussehen:
if(Major > 0)
return Files;
else if(Minor > 1)
return Files;
else if(Patch > 1)
return Files;
else if(Build > 1)
return Files;
else
return null;
Wie formuliere ich das mit SQL? Diese Abfrage führt nicht zu dem erwünschten Ergebnis:
SELECT
Files
FROM
tblVersion
WHERE
Major >= 0 AND
Minor >= 1 AND
Patch >= 1 AND
Build >= 1
Das kann auch nicht funktionieren, da Patch bei Version 0.2.0-14 niedriger ist als bei Version 0.1.1-1. Aber wie formuliere ich jetzt diese Abfrage mit SQL?
Wenn irgendwas nicht verständlich ist, beantworte ich gerne Rückfragen. Danke schon mal für eure Hilfe!
Viele Grüße,
Lukas