我正在用c#創建一個時間機器。時間機器是一種創建我的文件備份的方式,可以像我在特定時間訪問特定文件一樣。無論如何,我這樣做的方式是通過查找目錄中的所有文件,並將這些文件信息存儲在名爲table1的表中。所以,如果我第一次掃描我的電腦讓我們假設我只有3個文件,所以我的表看起來像:同一張表上的外部連接sql
ID FullName DateModified DateInsertedToDatabase
1 C:\A 456588731 0
2 C:\B 955588762 0
3 C:\C 854587783 0
可以說,下一次我執行備份我有同樣的3個文件,但我有創建一個新的文件,並修改文件C.其結果是我的表,現在應該是這樣的:
ID FullName DateModified DateInsertedToDatabase
1 C:\A 456588731 0
2 C:\B 955588762 0
3 C:\C 854587783 0
4 C:\A 456588731 1
5 C:\B 955588762 1
6 C:\C 111122212 1
7 C:\X 123212321 1
現在我會想文件C和文件X複製,因爲這些是已更改或創建的文件。我怎樣才能建立一個查詢,我可以獲得文件X和文件C?換句話說,我想所有有DateInsertedToDatabase = 1,該文件不匹配文件,其中DateInsertedToDatabase小於1
如果我沒有說清楚這是我的例子的延續: 讓說我繼續我的榜樣,我刪除文件:B和C,我修改文件X,我創建一個新的文件Z.我的表應該是這樣的:
ID FullName DateModified DateInsertedToDatabase
1 C:\A 456588731 0
2 C:\B 955588762 0
3 C:\C 854587783 0
4 C:\A 456588731 1
5 C:\B 955588762 1
6 C:\C 111122212 1
7 C:\X 123212321 1
8 C:\A 456588731 2
9 C:\X 898989898 2
10 C:\Z 789564545 2
在這裏我會想獲取文件X和Z因爲文件X被修改並且File Z被創建。我不想獲取文件A,因爲該文件已經存在相同的DateModified。我如何構建該查詢?
+1 #tablename是SQLite中的一個語法錯誤,但通用技術是健全的。 – pilcrow 2011-06-15 03:39:56