///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000, Microsoft Corp. All rights reserved.
//
// FILE
//
//    netshhelper.cpp
//
// SYNOPSIS
//
//    Implement the class CIASNetshJetHelper.
//
// MODIFICATION HISTORY
//
//    04/13/2000    Original version.
//    06/13/2000    parameter TRUE added for IASUpgrade
//
// NOTE
//        
// OpenJetDatabase MUST be called BEFORE calling any other method.
//
///////////////////////////////////////////////////////////////////////////////
#include <windows.h>

#include "netshhelper.h"
#include <iasdb.h>
#include "setup.h"

//////////////////////////////////////////////////////////////////////////////
// CIASNetshJetHelper
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// OpenJetDatabase
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CIASNetshJetHelper::OpenJetDatabase(
                                                    BSTR         Path,
                                                    VARIANT_BOOL ReadOnly
                                                )
{
    return IASOpenJetDatabase(Path, ReadOnly, &m_Session);
}


//////////////////////////////////////////////////////////////////////////////
// IASExecuteSQLFunction
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CIASNetshJetHelper::ExecuteSQLFunction(BSTR Command, LONG *Result)
{
    return IASExecuteSQLFunction(m_Session, Command, Result);

}


//////////////////////////////////////////////////////////////////////////////
// ExecuteSQLCommand
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CIASNetshJetHelper::ExecuteSQLCommand(BSTR Command)
{
    return IASExecuteSQLCommand(m_Session, Command, NULL);
}


//////////////////////////////////////////////////////////////////////////////
// CreateJetDatabase
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CIASNetshJetHelper::CreateJetDatabase(BSTR Path)
{
    return IASCreateJetDatabase(Path);
}


//////////////////////////////////////////////////////////////////////////////
// CloseJetDatabase
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CIASNetshJetHelper::CloseJetDatabase()
{
    m_Session.Release();
    return S_OK;
}


//////////////////////////////////////////////////////////////////////////////
// UpgradeDatabase
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CIASNetshJetHelper::UpgradeDatabase()
{
    CIASUpgrade     Upgrade;
    return Upgrade.IASUpgrade(TRUE); // TRUE = "called from Netshell"
}