SQLiteTempTable.cpp (1098B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #include "pch.h" 4 #include "Public/winget/SQLiteTempTable.h" 5 #include "AppInstallerStrings.h" 6 7 8 namespace AppInstaller::SQLite 9 { 10 using namespace std::string_view_literals; 11 12 TempTable::TempTable() 13 { 14 GUID tempName; 15 THROW_IF_FAILED(CoCreateGuid(&tempName)); 16 17 wchar_t guidAsString[MAX_PATH]; 18 THROW_HR_IF(E_UNEXPECTED, StringFromGUID2(tempName, guidAsString, MAX_PATH) == 0); 19 20 m_name = Utility::ConvertToUTF8(guidAsString); 21 } 22 23 TempTable::~TempTable() 24 { 25 if (m_dropTableStatement) 26 { 27 m_dropTableStatement.Execute(); 28 } 29 } 30 31 Builder::QualifiedTable TempTable::GetQualifiedName() const 32 { 33 return Builder::QualifiedTable("temp"sv, m_name); 34 } 35 36 void TempTable::InitDropStatement(const Connection& connection) 37 { 38 Builder::StatementBuilder builder; 39 builder.DropTable(m_name); 40 41 m_dropTableStatement = builder.Prepare(connection); 42 } 43 }