Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb : SQL Server 2005 Express et C#

1 réponse
Avatar
edforum
Bonjour =E0 tous

>>> Contexte

1. Installation de la base AdventureWorksLT
J'ai install=E9 la base AdventureWorksLT avec le fichier
AdventureWorksLT.msi .
J'ai lanc=E9 "SQL Server Management Studio Express" et ai acc=E9d=E9 sans
difficult=E9 =E0 la base.
J'ai ferm=E9 ensuite "SQL Server Management Studio Express".

2. Acc=E8s depuis une application
J'ai lanc=E9 Visual C# 2008 Express.
J'ai ouvert un projet de test, et dans la winform par d=E9faut j'ai mis
une DataGridView.
J'ai cr=E9=E9 une source de donn=E9es et l'ai associ=E9e =E0 cette DataGridV=
iew.
Cette source de donn=E9es pointe sur le fichier AdventureWorksLT.mdf
install=E9 dans
=2E..\MSSQL.1\MSSQL\Data ( r=E9pertoire par d=E9faut ).
Pendant la cr=E9ation de cette source, l'assistant a demand=E9 s'il devait
cr=E9er une copie de cette base dans /App_Data et utiliser cette copie.
J'ai refus=E9 et demand=E9 =E0 utiliser la base situ=E9e dans le r=E9pertoir=
e
par d=E9faut de sql server 2005 express.

La DataGridView permet de visualiser tout le contenu de la table
produit (pour le test).
J'ai choisi un produit et ai modifi=E9 son libell=E9.

Jusque-l=E0 tout va bien !

J'ai ferm=E9 Visual C# et l'application par la m=EAme occasion.


>>> Probl=E8me

Je lance "SQL Server Management Studio Express" =E0 nouveau pour
acc=E9der
=E0 la base, j'ai l'erreur suivante :

La base de donn=E9es 'AdventureWorksLT' ne peut pas =EAtre ouverte, car
des fichiers sont inaccessibles, ou la m=E9moire ou l'espace disque sont
insuffisants. Pour plus d'informations, consultez le journal des
erreurs de SQL Server. (Microsoft SQL Server, Error: 945)

Le fichier AdventureWorksLT_Data_log.LDF a =E9t=E9 ajout=E9 dans le
r=E9pertoire par d=E9faut de SQL Server 2005 Express, les fichiers
AdventureWorksLT_Data.mdf et AdventureWorksLT_Log.ldf sont toujours
pr=E9sents.

Je constate que la base de donn=E9es a =E9t=E9 modifi=E9e.
Y a-t-il une d=E9marche pour qu'elle ne le soit pas, en dehors du fait
d'accepter la copie de la base dans le r=E9pertoire /App_Data de
l'application ?

Pour le d=E9veloppement, la copie dans le r=E9pertoire /App_Data local =E0
l'application s'impose.

Quid de la liaison entre l'application et la base en production ?
Il ne s'agit pas de reproduire ce genre de probl=E8me avec une base de
prod.

J'attends vos suggestions.

Merci d'avance

ED

1 réponse

Avatar
Sylvain Lafontaine
Le problème, c'est que vous faites pointer la source de données vers le
fichier AdventureWorksLT.mdf au lieu de la faire pointer vers la base de
données telle que présentée par SQL-Server Express. Pointer votre source de
données vers le serveur SQL-Express au lieu d'essayer de la faire pointer
directement vers le fichier MDF.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"edforum" wrote in message
news:
Bonjour à tous

Contexte







1. Installation de la base AdventureWorksLT
J'ai installé la base AdventureWorksLT avec le fichier
AdventureWorksLT.msi .
J'ai lancé "SQL Server Management Studio Express" et ai accédé sans
difficulté à la base.
J'ai fermé ensuite "SQL Server Management Studio Express".

2. Accès depuis une application
J'ai lancé Visual C# 2008 Express.
J'ai ouvert un projet de test, et dans la winform par défaut j'ai mis
une DataGridView.
J'ai créé une source de données et l'ai associée à cette DataGridView.
Cette source de données pointe sur le fichier AdventureWorksLT.mdf
installé dans
...MSSQL.1MSSQLData ( répertoire par défaut ).
Pendant la création de cette source, l'assistant a demandé s'il devait
créer une copie de cette base dans /App_Data et utiliser cette copie.
J'ai refusé et demandé à utiliser la base située dans le répertoire
par défaut de sql server 2005 express.

La DataGridView permet de visualiser tout le contenu de la table
produit (pour le test).
J'ai choisi un produit et ai modifié son libellé.

Jusque-là tout va bien !

J'ai fermé Visual C# et l'application par la même occasion.


Problème







Je lance "SQL Server Management Studio Express" à nouveau pour
accéder
à la base, j'ai l'erreur suivante :

La base de données 'AdventureWorksLT' ne peut pas être ouverte, car
des fichiers sont inaccessibles, ou la mémoire ou l'espace disque sont
insuffisants. Pour plus d'informations, consultez le journal des
erreurs de SQL Server. (Microsoft SQL Server, Error: 945)

Le fichier AdventureWorksLT_Data_log.LDF a été ajouté dans le
répertoire par défaut de SQL Server 2005 Express, les fichiers
AdventureWorksLT_Data.mdf et AdventureWorksLT_Log.ldf sont toujours
présents.

Je constate que la base de données a été modifiée.
Y a-t-il une démarche pour qu'elle ne le soit pas, en dehors du fait
d'accepter la copie de la base dans le répertoire /App_Data de
l'application ?

Pour le développement, la copie dans le répertoire /App_Data local à
l'application s'impose.

Quid de la liaison entre l'application et la base en production ?
Il ne s'agit pas de reproduire ce genre de problème avec une base de
prod.

J'attends vos suggestions.

Merci d'avance

ED