Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema erfahren Sie, wie Sie Speicherort und Größe der temporären Datenbank durch Programmieren einer OLE DB-Anwendung in Visual C++ festlegen können. Zum Festlegen des Speicherortes der temporären Datenbank geben Sie entweder bei der Initialisierung der Datenquelle die DBPROP_SSCE_TEMPFILE_DIRECTORY-Eigenschaft an oder legen Sie den Speicherort bei der Ausführung der ISSCECompact::Compact-Methode fest. Die Datenbankgröße wird über die DBPROP_SSCE_TEMPFILE_MAX_SIZE-Eigenschaft angegeben.
Beispiel
Im folgenden Beispiel wird gezeigt, wie das Verzeichnis der temporären Datenbank mithilfe der DBPROP_SSCE_TEMPFILE_DIRECTORY-Eigenschaft beim Aufrufen von IDBProperties::SetProperties angegeben wird.
// Object declarations
HRESULT hr = NOERROR;
DBPROPSET dbpropset[2];
DBPROP dbprop[1];
DBPROP sscedbprop[1];
// Declare the provider interfaces.
IDBInitialize * pIDBInitialize = NULL;
IDBProperties * pIDBProperties = NULL;
// Initialize the data source.
hr = CoCreateInstance(CLSID_SQLSERVERCE_3_0, 0, CLSCTX_INPROC_SERVER,
IID_IDBInitialize, (void**) &pIDBInitialize);
if (FAILED(hr))
{
//Send an error-specific message and do error handling.
goto Exit;
}
// Initialize property structures
VariantInit(&dbprop[0].vValue);
VariantInit(&sscedbprop[0].vValue);
// Initialize Property with name of database.
dbprop[0].dwPropertyID = DBPROP_INIT_DATASOURCE;
dbprop[0].dwOptions = DBPROPOPTIONS_REQUIRED;
dbprop[0].vValue.vt = VT_BSTR;
dbprop[0].vValue.bstrVal = SysAllocString(L"MyDB.sdf");
if(NULL == dbprop[0].vValue.bstrVal)
{
hr = E_OUTOFMEMORY;
goto Exit;
}
// Second property set has one property that contains the provider-specific
// property to specify an alternative temp file directory.
sscedbprop[0].dwPropertyID = DBPROP_SSCE_TEMPFILE_DIRECTORY;
sscedbprop[0].vValue.vt = VT_BSTR;
sscedbprop[0].vValue.bstrVal = SysAllocString(L"\\NewTempDir");
if(NULL == dbprop[0].vValue.bstrVal)
{
hr = E_OUTOFMEMORY;
goto Exit;
}
// Initialize property set.
dbpropset[0].guidPropertySet = DBPROPSET_DBINIT;
dbpropset[0].rgProperties = dbprop;
dbpropset[0].cProperties = sizeof(dbprop)/sizeof(dbprop[0]);
// Initialize the provider-specific property set.
dbpropset[1].guidPropertySet = DBPROPSET_SSCE_DBINIT;
dbpropset[1].rgProperties = sscedbprop;
dbpropset[1].cProperties = sizeof(sscedbprop)/sizeof(sscedbprop[0]);
// Set the properties into the provider's data source object.
pIDBInitialize->QueryInterface(IID_IDBProperties,(void**)&pIDBProperties);
hr = pIDBProperties->SetProperties(sizeof(dbpropset)/sizeof(dbpropset[0]),
dbpropset);
if(FAILED(hr))
{
goto Exit;
}
// Initialize the data source.
hr = pIDBInitialize->Initialize();
if(FAILED(hr))
{
goto Exit;
}
Exit:
//Clean up resources here
return;