winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }