Partager via


Procédure : définir le mode de fichier lors de l'ouverture d'une base de données à l'aide d'OLE DB (par programme)

Dans cette rubrique, vous allez apprendre comment définir le mode de fichier lors de l'ouverture d'une base de données Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) à l'aide du fournisseur OLE DB pour SQL Server Compact Edition. Pour définir le mode dans lequel la base de données est ouverte, vous utilisez la propriété DBPROP_INIT_MODE. Le tableau suivant définit les valeurs valides pour le mode de fichier :

Valeur Définition

DB_MODE_READ

Vous permet d'ouvrir une copie en lecture seule de la base de données.

DB_MODE_WRITE

Vous permet d'ouvrir une copie en écriture seule de la base de données.

DB_MODE_READWRITE

Autorise plusieurs processus à ouvrir et à modifier la base de données.

DB_MODE_SHARE_DENY_READ

Empêche d'autres utilisateurs d'ouvrir la base de données en mode lecture.

DB_MODE_SHARE_DENY_WRITE

Empêche d'autres utilisateurs d'ouvrir la base de données en mode écriture.

DB_MODE_SHARE_EXCLUSIVE

Empêche d'autres utilisateurs d'ouvrir la base de données en mode lecture/écriture (DB_MODE_SHARE_DENY_READ | DB_MODE_SHARE_DENY_WRITE).

DB_MODE_SHARE_DENY_NONE

Ni l'accès en lecture ni l'accès en écriture ne peuvent être refusés à d'autres utilisateurs.

Remarque :
Lorsque vous ouvrez une base de données qui se trouve dans un partage de fichiers, la seule option disponible est le mode de fichier DB_MODE_SHARE_EXCLUSIVE. La lecture et l'écriture d'une base de données SQL Server Compact Edition sur un partage réseau fonctionne à partir d'un seul processus. Au sein de ce processus unique, plusieurs connexions peuvent être ouvertes. Par exemple, une connexion peut effectuer une opération Insert alors qu'une seconde connexion effectue une requête Select. Toutefois, deux connexions distinctes ne peuvent pas utiliser SQL Server Compact Edition pour accéder au même fichier .sdf sur un partage réseau. La seconde connexion recevra une erreur de violation de partage de fichier.

Exemple

Le code ci-dessous illustre la définition du mode de fichier à l'aide du fournisseur OLE DB pour SQL Server Compact Edition.

DBPROPSETdbpropset[1]; // Property Set used to initialize provider
DBPROPdbprop[2]; // Property array used in property set to initialize provider

VariantInit(&dbprop[0].vValue);
VariantInit(&dbprop[1].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;
}
// Initialize property with open mode for database
dbprop[1].dwPropertyID = DBPROP_INIT_MODE;
dbprop[1].dwOptions = DBPROPOPTIONS_REQUIRED;
dbprop[1].vValue.vt = VT_I4;
dbprop[1].vValue.lVal = DB_MODE_READ;

// Initialize property set
dbpropset[0].guidPropertySet = DBPROPSET_DBINIT;
dbpropset[0].rgProperties = dbprop;
dbpropset[0].cProperties = sizeof(dbprop)/sizeof(dbprop[0]);

// Set properties into the provider's DSO object
hr = pIDBProperties->SetProperties(sizeof(dbpropset)/sizeof(dbpropset[0]), dbpropset);
if(FAILED(hr))
{
      goto Exit;
}

Voir aussi

Aide et information

Assistance sur SQL Server Compact Edition