diff --git a/CI.cmd b/CI.cmd deleted file mode 100644 index 8a8386d..0000000 --- a/CI.cmd +++ /dev/null @@ -1,31 +0,0 @@ -@ECHO OFF - -SET VS2022=%PROGRAMFILES%\Microsoft Visual Studio\2022\Community -SET MSBUILD=%VS2022%\Msbuild\Current\Bin\MSBuild.exe - -"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=x64 Flint\Flint.vcxproj -Robocopy Flint\x64\Release Qwilight\Assets\AMD64 Flint.exe -"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=ARM64 Flint\Flint.vcxproj -Robocopy Flint\ARM64\Release Qwilight\Assets\ARM64 Flint.exe - -"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=x64 Igniter\Igniter.csproj -Robocopy Igniter\bin\x64\Release Qwilight\Assets\AMD64 Igniter.exe -"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=ARM64 Igniter\Igniter.csproj -Robocopy Igniter\bin\ARM64\Release Qwilight\Assets\ARM64 Igniter.exe - -"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=x64 NVIDIA\NVIDIA.vcxproj -Robocopy NVIDIA\x64\Release Qwilight\Assets\AMD64 NVIDIA.dll - -"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=x64 Xwindow\Xwindow.vcxproj -Robocopy Xwindow\x64\Release Qwilight\Assets\AMD64 Xwindow.exe -"%MSBUILD%" -t:Build -p:Configuration=Release,Platform=ARM64 Xwindow\Xwindow.vcxproj -Robocopy Xwindow\ARM64\Release Qwilight\Assets\ARM64 Xwindow.exe - -IF %PROCESSOR_ARCHITECTURE% == AMD64 ( - dotnet build Language\Language.csproj -c Release -p:Platform=x64 - Language\bin\x64\Release\net8.0\Language.exe -) -IF %PROCESSOR_ARCHITECTURE% == ARM64 ( - dotnet build Language\Language.csproj -c Release -p:Platform=ARM64 - Language\bin\ARM64\Release\net8.0\Language.exe -) diff --git a/CI.ps1 b/CI.ps1 new file mode 100644 index 0000000..886ce65 --- /dev/null +++ b/CI.ps1 @@ -0,0 +1,31 @@ +$VS2022 = "$env:PROGRAMFILES\Microsoft Visual Studio\2022\Community" +$MSBUILD = "$VS2022\Msbuild\Current\Bin\MSBuild.exe" + +& $MSBUILD -t:Build -p:Configuration=Release,Platform=x64 "Flint\Flint.vcxproj" +Copy-Item "Flint\x64\Release\Flint.exe" "Qwilight\Assets\AMD64" +& $MSBUILD -t:Build -p:Configuration=Release,Platform=ARM64 "Flint\Flint.vcxproj" +Copy-Item "Flint\ARM64\Release\Flint.exe" "Qwilight\Assets\ARM64" + +& $MSBUILD -t:Build -p:Configuration=Release,Platform=x64 "Igniter\Igniter.csproj" +Copy-Item "Igniter\bin\x64\Release\Igniter.exe" "Qwilight\Assets\AMD64" +& $MSBUILD -t:Build -p:Configuration=Release,Platform=ARM64 "Igniter\Igniter.csproj" +Copy-Item "Igniter\bin\ARM64\Release\Igniter.exe" "Qwilight\Assets\ARM64" + +& $MSBUILD -t:Build -p:Configuration=Release,Platform=x64 "NVIDIA\NVIDIA.vcxproj" +Copy-Item "NVIDIA\x64\Release\NVIDIA.dll" "Qwilight\Assets\AMD64" + +& $MSBUILD -t:Build -p:Configuration=Release,Platform=x64 "Xwindow\Xwindow.vcxproj" +Copy-Item "Xwindow\x64\Release\Xwindow.exe" "Qwilight\Assets\AMD64" +& $MSBUILD -t:Build -p:Configuration=Release,Platform=ARM64 "Xwindow\Xwindow.vcxproj" +Copy-Item "Xwindow\ARM64\Release\Xwindow.exe" "Qwilight\Assets\ARM64" + +if ($env:PROCESSOR_ARCHITECTURE -eq "AMD64") +{ + dotnet build Language\Language.csproj -c Release -p:Platform=x64 + .\Language\bin\x64\Release\net8.0\Language.exe +} +if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") +{ + dotnet build Language\Language.csproj -c Release -p:Platform=ARM64 + .\Language\bin\ARM64\Release\net8.0\Language.exe +} diff --git a/Igniter/Igniter.csproj b/Igniter/Igniter.csproj index 962a53c..c1bc194 100644 --- a/Igniter/Igniter.csproj +++ b/Igniter/Igniter.csproj @@ -153,7 +153,7 @@ - 8.2.2 + 8.3.0 5.7.0 diff --git a/Protobuf/Protobuf.csproj b/Protobuf/Protobuf.csproj index 159a5a3..c309314 100644 --- a/Protobuf/Protobuf.csproj +++ b/Protobuf/Protobuf.csproj @@ -6,6 +6,6 @@ - + diff --git a/Qwilight.cmd b/Qwilight.cmd deleted file mode 100644 index dc92fb7..0000000 --- a/Qwilight.cmd +++ /dev/null @@ -1,81 +0,0 @@ -@ECHO OFF - -SET /P DATE=v - -SET VS2022=%PROGRAMFILES%\Microsoft Visual Studio\2022\Community -SET MSBUILD=%VS2022%\Msbuild\Current\Bin\MSBuild.exe -SET BANDIZIP=%PROGRAMFILES%\Bandizip\bz.exe -SET WINAMD64=bin\x64\Release\net8.0-windows10.0.22621.0\win-x64 -SET WINARM64=bin\ARM64\Release\net8.0-windows10.0.22621.0\win-arm64 -SET WINAMD64PUBLISH=Qwilight\%WINAMD64%\publish -SET WINARM64PUBLISH=Qwilight\%WINARM64%\publish - -CALL CI - -CHOICE /M TEST -SET TEST=%ERRORLEVEL% -IF %TEST% == 1 ( - IF %PROCESSOR_ARCHITECTURE% == AMD64 ( - RMDIR /S /Q Test\%WINAMD64% - Robocopy Test\qpdgo\Bundle Test\%WINAMD64%\qpdgo\Bundle /MIR - MKDIR Test\%WINAMD64%\qpdgo\UI - "%BANDIZIP%" x -target:auto Test\qpdgo\UI\*.zip Test\%WINAMD64%\qpdgo\UI - dotnet test Test\Test.csproj -c Release -p:Platform=x64 - ) - IF %PROCESSOR_ARCHITECTURE% == ARM64 ( - RMDIR /S /Q Test\%WINARM64% - Robocopy Test\qpdgo\Bundle Test\%WINARM64WINARM64%\qpdgo\Bundle /MIR - MKDIR Test\%WINARM64%\qpdgo\UI - "%BANDIZIP%" x -target:auto Test\qpdgo\UI\*.zip Test\%WINARM64%\qpdgo\UI - dotnet test Test\Test.csproj -c Release -p:Platform=ARM64 - ) -) -IF %TEST% == 1 ( - IF NOT %ERRORLEVEL% == 0 ( - PAUSE - ) -) - -RMDIR /S /Q %WINAMD64PUBLISH% -dotnet publish Qwilight\Qwilight.csproj -c Release -p:Platform=x64 -"%BANDIZIP%" c -storeroot:no Qwilight.AMD64.zip %WINAMD64PUBLISH% - -RMDIR /S /Q %WINARM64PUBLISH% -dotnet publish Qwilight\Qwilight.csproj -c Release -p:Platform=ARM64 -"%BANDIZIP%" c -storeroot:no Qwilight.ARM64.zip %WINARM64PUBLISH% - -CHOICE /M PATCH -IF %ERRORLEVEL% == 1 ( - curl -X PATCH taehui:4003/date/AMD64 --data-binary "@Qwilight.AMD64.zip" - curl -X PATCH taehui:4003/date/ARM64 --data-binary "@Qwilight.ARM64.zip" - curl -X PATCH taehui:4003/date -d "%DATE%" -) - -DEL Qwilight.AMD64.zip -DEL Qwilight.ARM64.zip - -CHOICE /M VALVE -SET VALVE=%ERRORLEVEL% -IF %VALVE% == 1 ( - SET /P ID=ID: - SET /P PW=PW: -) -IF %VALVE% == 1 ( - sdk\tools\ContentBuilder\builder\steamcmd +login %ID% %PW% +run_app_build ..\scripts\simple_app_build.vdf +quit -) -IF %VALVE% == 1 ( - IF %ERRORLEVEL% == 0 ( - start https://partner.steamgames.com/apps/builds/1910130 - ) -) - -CHOICE /M VCS -IF %ERRORLEVEL% == 1 ( - git add * - git commit -m "v%DATE%" - git push - git checkout master - git merge develop - git push - git checkout develop -) \ No newline at end of file diff --git a/Qwilight.ps1 b/Qwilight.ps1 new file mode 100644 index 0000000..fde8c05 --- /dev/null +++ b/Qwilight.ps1 @@ -0,0 +1,84 @@ +$VS2022 = "$env:PROGRAMFILES\Microsoft Visual Studio\2022\Community" +$MSBUILD = "$VS2022\Msbuild\Current\Bin\MSBuild.exe" +$BANDIZIP = "$env:PROGRAMFILES\Bandizip\bz.exe" +$WINAMD64 = "bin\x64\Release\net8.0-windows10.0.22621.0\win-x64" +$WINARM64 = "bin\ARM64\Release\net8.0-windows10.0.22621.0\win-arm64" +$WINAMD64PUBLISH = "Qwilight\$WINAMD64\publish" +$WINARM64PUBLISH = "Qwilight\$WINARM64\publish" + + .\CI.ps1 + +$TEST = Read-Host "TEST" +if ($TEST -eq "Y") +{ + if ($env:PROCESSOR_ARCHITECTURE -eq "AMD64") + { + Remove-Item -Path "Test\$WINAMD64" -Recurse + Robocopy "Test\qpdgo\Bundle" "Test\$WINAMD64\qpdgo\Bundle" /MIR + + mkdir "Test\$WINAMD64\qpdgo\UI" + & $BANDIZIP x -target:auto "Test\qpdgo\UI\*.zip" "Test\$WINAMD64\qpdgo\UI" + + dotnet test "Test\Test.csproj" -c Release -p:Platform=x64 + } + if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") + { + Remove-Item -Path "Test\$WINARM64" -Recurse + Robocopy "Test\qpdgo\Bundle" "Test\$WINARM64\qpdgo\Bundle" /MIR + + mkdir "Test\$WINARM64\qpdgo\UI" + & $BANDIZIP x -target:auto "Test\qpdgo\UI\*.zip" "Test\$WINARM64\qpdgo\UI" + + dotnet test "Test\Test.csproj" -c Release -p:Platform=ARM64 + } + if ($LASTEXITCODE -ne 0) + { + Pause + } +} + +Remove-Item -Path "$WINAMD64PUBLISH" -Recurse +dotnet publish "Qwilight\Qwilight.csproj" -c Release -p:Platform=x64 +& $BANDIZIP c -storeroot:no "Qwilight.AMD64.zip" "$WINAMD64PUBLISH" + +Remove-Item -Path "$WINARM64PUBLISH" -Recurse +dotnet publish "Qwilight\Qwilight.csproj" -c Release -p:Platform=ARM64 +& $BANDIZIP c -storeroot:no "Qwilight.ARM64.zip" "$WINARM64PUBLISH" + +$DATE = (Select-Xml -Path .\Qwilight\Qwilight.csproj -XPath /Project/PropertyGroup/VersionPrefix).Node.InnerXML + +$PATCH = Read-Host "PATCH" +if ($PATCH -eq "Y") +{ + curl.exe -X PATCH "taehui:4003/date/AMD64" --data-binary "@Qwilight.AMD64.zip" + curl.exe -X PATCH "taehui:4003/date/ARM64" --data-binary "@Qwilight.ARM64.zip" + curl.exe -X PATCH "taehui:4003/date" -d "$DATE" +} + +Remove-Item -Path Qwilight.AMD64.zip +Remove-Item -Path Qwilight.ARM64.zip + +$VALVE = Read-Host "VALVE" +if ($VALVE -eq "Y") +{ + $ID = Read-Host "ID" + $PW = Read-Host "PW" -MaskInput + + sdk\tools\ContentBuilder\builder\steamcmd +login "$ID" "$PW" +run_app_build "..\scripts\simple_app_build.vdf" +quit + if ($LASTEXITCODE -eq 0) + { + Start-Process "https://partner.steamgames.com/apps/builds/1910130" + } +} + +$VCS = Read-Host "VCS" +if ($VCS -eq "Y") +{ + git add * + git commit -m "v$DATE" + git push + git checkout master + git merge develop + git push + git checkout develop +} \ No newline at end of file diff --git a/Qwilight/Qwilight.csproj b/Qwilight/Qwilight.csproj index 0c2f1d6..8b4ecee 100644 --- a/Qwilight/Qwilight.csproj +++ b/Qwilight/Qwilight.csproj @@ -39,7 +39,7 @@ - + diff --git a/Qwilight/System/DB.cs b/Qwilight/System/DB.cs index cdc7692..c278af0 100644 --- a/Qwilight/System/DB.cs +++ b/Qwilight/System/DB.cs @@ -33,8 +33,7 @@ readonly object _dbCSX = new(); readonly object _setSaveCSX = new(); - SqliteConnection _fastDB; - SqliteConnection _fileDB; + SqliteConnection _dbFast; public string DBFault { get; set; } @@ -42,18 +41,14 @@ { Utility.WipeFile(_tmp0FileName); Utility.MoveFile(_tmp1FileName, _fileName); - _fastDB = new(new SqliteConnectionStringBuilder + _dbFast = new(new SqliteConnectionStringBuilder { DataSource = ":memory:" }.ToString()); - _fileDB = new(new SqliteConnectionStringBuilder - { - DataSource = _fileName - }.ToString()); try { LoadImpl(); - using var dbStatement = new SqliteCommand("PRAGMA integrity_check", _fastDB); + using var dbStatement = new SqliteCommand("PRAGMA integrity_check", _dbFast); using var rows = dbStatement.ExecuteReader(); if (rows.Read()) { @@ -72,23 +67,30 @@ void LoadImpl() { - _fastDB.Open(); - _fileDB.Open(); - _fileDB.BackupDatabase(_fastDB); + _dbFast.Open(); + using (var dbFile = new SqliteConnection(new SqliteConnectionStringBuilder + { + DataSource = _fileName + }.ToString())) + { + dbFile.Open(); + dbFile.BackupDatabase(_dbFast); + } + SqliteConnection.ClearAllPools(); #region COMPATIBLE - Compatible.Compatible.DB(_fastDB); + Compatible.Compatible.DB(_dbFast); #endregion HandleStatementUnit(t => { #region 데이터베이스 정보 Date date; - using (var dbStatement = new SqliteCommand("PRAGMA user_version", _fastDB, t)) + using (var dbStatement = new SqliteCommand("PRAGMA user_version", _dbFast, t)) { date = (Date)dbStatement.ExecuteScalar(); } - using (var dbStatement = new SqliteCommand($"PRAGMA user_version = {((long)LatestDBDate)}", _fastDB, t)) + using (var dbStatement = new SqliteCommand($"PRAGMA user_version = {((long)LatestDBDate)}", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -156,7 +158,7 @@ Is_Paused INTEGER DEFAULT 0, Input_Flags INTEGER DEFAULT 0 ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -168,11 +170,11 @@ INTO tmp_comment(Date, Event_Note_ID, Comment, Name, Multiplier, Auto_Mode, Note_Salt_Mode, Audio_Multiplier, Faint_Note_Mode, Judgment_Mode, Hit_Points_Mode, Note_Mobility_Mode, Long_Note_Mode, Input_Favor_Mode, Note_Modify_Mode, BPM_Mode, Wave_Mode, Set_Note_Mode, Lowest_Judgment_Condition_Mode, Stand, Band, Is_Band1, Point, Salt, Highest_Judgment_0, Higher_Judgment_0, High_Judgment_0, Low_Judgment_0, Lower_Judgment_0, Lowest_Judgment_0, Highest_Judgment_1, Higher_Judgment_1, High_Judgment_1, Low_Judgment_1, Lower_Judgment_1, Lowest_Judgment_1, Lowest_Long_Note_Modify, Highest_Long_Note_Modify, Set_Note_Put, Set_Note_Put_Millis, Highest_Hit_Points_0, Higher_Hit_Points_0, High_Hit_Points_0, Low_Hit_Points_0, Lower_Hit_Points_0, Lowest_Hit_Points_0, Highest_Hit_Points_1, Higher_Hit_Points_1, High_Hit_Points_1, Low_Hit_Points_1, Lower_Hit_Points_1, Lowest_Hit_Points_1, Note_ID, Is_Paused, Input_Flags) SELECT * FROM comment - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE comment", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE comment", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -180,7 +182,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_comment RENAME TO comment - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -189,7 +191,7 @@ Note_ID, Event_Note_ID ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -205,7 +207,7 @@ Note_Position INTEGER, PRIMARY KEY (Entry_Path) ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -216,11 +218,11 @@ INTO tmp_entry SELECT * FROM entry - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE entry", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE entry", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -228,7 +230,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_entry RENAME TO entry - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -243,7 +245,7 @@ Note_ID VARCHAR(139), Favorite_Entry TEXT ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -254,11 +256,11 @@ INTO tmp_favorite_entry SELECT * FROM favorite_entry - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE favorite_entry", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE favorite_entry", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -266,7 +268,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_favorite_entry RENAME TO favorite_entry - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -274,7 +276,7 @@ CREATE INDEX IF NOT EXISTS _favorite_entry ON favorite_entry ( Note_ID ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -290,7 +292,7 @@ Handled INTEGER, PRIMARY KEY (Note_ID) ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -301,11 +303,11 @@ INTO tmp_handled SELECT * FROM handled - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE handled", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE handled", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -313,7 +315,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_handled RENAME TO handled - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -329,7 +331,7 @@ Event_Note_ID TEXT, Date DATE ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -340,11 +342,11 @@ INTO tmp_date SELECT * FROM date - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE date", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE date", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -352,7 +354,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_date RENAME TO date - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -361,7 +363,7 @@ Note_ID, Event_Note_ID ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -379,7 +381,7 @@ Media LONG DEFAULT 1, PRIMARY KEY (Note_ID) ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -390,11 +392,11 @@ INTO tmp_wait SELECT * FROM wait - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE wait", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE wait", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -402,7 +404,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_wait RENAME TO wait - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -418,7 +420,7 @@ Format LONG DEFAULT -1, PRIMARY KEY (Note_ID) ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -429,11 +431,11 @@ INTO tmp_format SELECT * FROM format - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE format", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE format", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -441,7 +443,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_format RENAME TO format - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -459,7 +461,7 @@ Variety INTEGER DEFAULT 0, PRIMARY KEY (Event_Note_ID, Variety) ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -470,11 +472,11 @@ INTO tmp_event_note SELECT * FROM event_note - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE event_note", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE event_note", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -482,7 +484,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_event_note RENAME TO event_note - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -503,7 +505,7 @@ Genre TEXT, PRIMARY KEY (Note_ID) ) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -514,11 +516,11 @@ INTO tmp_event_note_data SELECT * FROM event_note_data - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } - using (var dbStatement = new SqliteCommand("DROP TABLE event_note_data", _fastDB, t)) + using (var dbStatement = new SqliteCommand("DROP TABLE event_note_data", _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -526,7 +528,7 @@ using (var dbStatement = new SqliteCommand(""" ALTER TABLE tmp_event_note_data RENAME TO event_note_data - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.ExecuteNonQuery(); } @@ -539,7 +541,7 @@ SELECT name FROM sqlite_master WHERE type = "table" AND name = @tableName - """, _fastDB, t); + """, _dbFast, t); dbStatement.Parameters.AddWithValue("tableName", tableName); return dbStatement.ExecuteScalar() != null; } @@ -549,8 +551,7 @@ void Close() { SqliteConnection.ClearAllPools(); - _fastDB.Dispose(); - _fileDB.Dispose(); + _dbFast.Dispose(); Utility.MoveFile(_fileName, _faultFileName); LoadImpl(); } @@ -568,7 +569,7 @@ WHERE {(string.IsNullOrEmpty(eventNoteID) ? "Note_ID = @noteID" : "Event_Note_ID = @eventNoteID")} ORDER BY Stand DESC LIMIT 50 - """, _fastDB); + """, _dbFast); if (string.IsNullOrEmpty(eventNoteID)) { dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); @@ -668,7 +669,7 @@ REPLACE INTO event_note_data VALUES(@noteID, @noteVariety, @title, @artist, @level, @levelText, @genre) - """, _fastDB, t); + """, _dbFast, t); dbStatement.Parameters.AddWithValue("noteID", wwwLevelComputingValue.GetNoteID512()); dbStatement.Parameters.AddWithValue("noteVariety", noteVariety); dbStatement.Parameters.AddWithValue("title", wwwLevelComputingValue.Title); @@ -687,7 +688,7 @@ SELECT Note_Variety, Title, Artist, Level, Level_Text, Genre FROM event_note_data WHERE Note_ID = @noteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteID); using var rows = dbStatement.ExecuteReader(); if (rows.Read()) @@ -730,7 +731,7 @@ SELECT Favorite_Entry FROM favorite_entry WHERE Note_ID = @noteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); using var rows = dbStatement.ExecuteReader(); while (rows.Read()) @@ -753,7 +754,7 @@ using var dbStatement = new SqliteCommand(""" SELECT Event_Note_ID, Name, Date, Variety FROM event_note - """, _fastDB); + """, _dbFast); using var rows = dbStatement.ExecuteReader(); while (rows.Read()) { @@ -769,7 +770,7 @@ SELECT Handled FROM handled WHERE Note_ID = @noteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); using var rows = dbStatement.ExecuteReader(); return new BaseNoteFile.Handled @@ -784,7 +785,7 @@ REPLACE INTO handled VALUES(@noteID, @handled) - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.Parameters.AddWithValue("handled", noteFile.HandledValue.IDValue); dbStatement.ExecuteNonQuery(); @@ -799,7 +800,7 @@ SELECT MAX(Date) AS Latest, COUNT(Date) AS Count FROM date WHERE {(string.IsNullOrEmpty(eventNoteID) ? "Note_ID = @noteID" : "Event_Note_ID = @eventNoteID")} - """, _fastDB); + """, _dbFast); if (string.IsNullOrEmpty(eventNoteID)) { dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); @@ -830,7 +831,7 @@ INSERT INTO date VALUES(@noteID, @eventNoteID, @date) - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile?.GetNoteID512() ?? DBNull.Value as object); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID ?? DBNull.Value as object); dbStatement.Parameters.AddWithValue("date", date); @@ -843,7 +844,7 @@ SELECT Note_Position FROM entry WHERE Entry_Path = @entryPath - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("entryPath", entryPath); using var rows = dbStatement.ExecuteReader(); return rows.Read() ? rows.GetInt32("Note_Position") : 0; @@ -858,7 +859,7 @@ SELECT Audio_Wait, Media_Wait, Media FROM wait WHERE Note_ID = @noteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); using var rows = dbStatement.ExecuteReader(); if (rows.Read()) @@ -883,7 +884,7 @@ SELECT Format FROM format WHERE Note_ID = @noteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); using var rows = dbStatement.ExecuteReader(); return rows.Read() ? rows.GetInt32("Format") : -1; @@ -895,7 +896,7 @@ REPLACE INTO entry VALUES(@entryPath, @notePosition) - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("entryPath", entryItem.EntryPath); dbStatement.Parameters.AddWithValue("notePosition", entryItem.NotePosition); dbStatement.ExecuteNonQuery(); @@ -907,7 +908,7 @@ DELETE FROM favorite_entry WHERE Note_ID = @noteID - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.ExecuteNonQuery(); @@ -918,7 +919,7 @@ REPLACE INTO favorite_entry VALUES(@noteID, @favoriteEntry) - """, _fastDB, t)) + """, _dbFast, t)) { dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.Parameters.AddWithValue("favoriteEntry", favoriteEntryItem.DefaultEntryPath); @@ -932,7 +933,7 @@ using var dbStatement = new SqliteCommand(""" INSERT INTO event_note VALUES(@eventNoteID, @eventNoteName, @date, @eventNoteVariety) - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID); dbStatement.Parameters.AddWithValue("eventNoteName", eventNoteName); dbStatement.Parameters.AddWithValue("date", date); @@ -946,7 +947,7 @@ DELETE FROM event_note WHERE Event_Note_ID = @eventNoteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID); dbStatement.ExecuteNonQuery(); }); @@ -957,7 +958,7 @@ UPDATE event_note SET Name = @eventNoteName WHERE Event_Note_ID = @eventNoteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("eventNoteName", eventNoteName); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID); dbStatement.ExecuteNonQuery(); @@ -969,7 +970,7 @@ INSERT INTO comment VALUES(@date, @eventNoteID, @comment, @avatar, @multiplier, @autoMode, @noteSaltMode, @audioMultiplier, @faintNoteMode, @judgmentMode, @hitPointsMode, @noteMobilityMode, @longNoteMode, @inputFavorMode, @noteModifyMode, @bpmMode, @waveMode, @setNoteMode, @lowestJudgmentConditionMode, @stand, @band, @isBand1, @point, @salt, @highestJudgment0, @higherJudgment0, @highJudgment0, @lowJudgment0, @lowerJudgment0, @lowestJudgment0, @highestJudgment1, @higherJudgment1, @highJudgment1, @lowJudgment1, @lowerJudgment1, @lowestJudgment1, @inputFavorLabelledMillis, @lowestLongNoteModify, @highestLongNoteModify, @setNotePut, @setNotePutMillis, @highestHitPoints0, @higherHitPoints0, @highHitPoints0, @lowHitPoints0, @lowerHitPoints0, @lowestHitPoints0, @highestHitPoints1, @higherHitPoints1, @highHitPoints1, @lowHitPoints1, @lowerHitPoints1, @lowestHitPoints1, @noteID, @isPaused, @inputFlags) - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("date", date); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID ?? DBNull.Value as object); dbStatement.Parameters.AddWithValue("comment", comment); @@ -1035,7 +1036,7 @@ REPLACE INTO wait VALUES(@noteID, @audioWait, @mediaWait, @media) - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.Parameters.AddWithValue("audioWait", audioWait); dbStatement.Parameters.AddWithValue("mediaWait", mediaWait); @@ -1049,7 +1050,7 @@ REPLACE INTO format VALUES(@noteID, @format) - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.Parameters.AddWithValue("format", format); dbStatement.ExecuteNonQuery(); @@ -1060,7 +1061,7 @@ using var dbStatement = new SqliteCommand(""" DELETE FROM favorite_entry - """, _fastDB); + """, _dbFast); dbStatement.ExecuteNonQuery(); }); @@ -1070,7 +1071,7 @@ DELETE FROM handled WHERE Note_ID = @noteID - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.ExecuteNonQuery(); }); @@ -1080,7 +1081,7 @@ using var dbStatement = new SqliteCommand(""" UPDATE wait SET Audio_Wait = NULL, Media_Wait = 0.0 - """, _fastDB); + """, _dbFast); dbStatement.ExecuteNonQuery(); }); @@ -1089,7 +1090,7 @@ using var dbStatement = new SqliteCommand(""" UPDATE wait SET Media = NULL - """, _fastDB); + """, _dbFast); dbStatement.ExecuteNonQuery(); }); @@ -1099,7 +1100,7 @@ DELETE FROM comment WHERE Comment = @comment - """, _fastDB); + """, _dbFast); dbStatement.Parameters.AddWithValue("comment", comment); dbStatement.ExecuteNonQuery(); }); @@ -1109,13 +1110,13 @@ using var dbStatement = new SqliteCommand(""" DELETE FROM comment - """, _fastDB); + """, _dbFast); dbStatement.ExecuteNonQuery(); }); void HandleStatementUnit(Action onHandle) => HandleCSX(() => { - using var t = _fastDB.BeginTransaction(); + using var t = _dbFast.BeginTransaction(); try { onHandle(t); @@ -1150,7 +1151,17 @@ { Utility.CopyFile(_fileName, _tmp0FileName); Utility.MoveFile(_tmp0FileName, _tmp1FileName); - _fastDB.BackupDatabase(_fileDB); + + using (var dbFile = new SqliteConnection(new SqliteConnectionStringBuilder + { + DataSource = _fileName + }.ToString())) + { + dbFile.Open(); + _dbFast.BackupDatabase(dbFile); + } + SqliteConnection.ClearAllPools(); + Utility.WipeFile(_tmp1FileName); } }