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

comment se connecter à une database sql server MDF avec une page ASP classic?

5 réponses
Avatar
Bart
Bonjour,

J'essaye de me connecter à une base de données de type MDF (sqlserver
express 2005) qui se situe dans:
c:\inetpub\wwwroot\reskrosql\App_Data.

J'ai l'erreur suivante:

Provider error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB
status value, if available. No work was done"

Le code dans ASP file:
--------------------
<%
set objdc = Server.CreateObject("ADODB.Connection")
objdc.Open(application("newres")) 'ligne erreur
%>

global.asa:
----------
Sub Application_OnStart
Application("newres") =
"Provider=SQLOLEDB;DATABASE=c:\inetpub\wwwroot\reskrosql\App_Data\newres.mdf;Data
Source=.\SQLEXPRESS;AttachDbFilename=c:\inetpub\wwwroot\reskrosql\App_Data\newres.mdf;Integrated
Security=True;User Instance=True"


'aussi essayé avec:
Sub Application_OnStart
Application("newres") = "Provider=SQLOLEDB;DATABASE=newres;Data
Source=.\SQLEXPRESS;AttachDbFilename=c:\inetpub\wwwroot\reskrosql\App_Data\newres.mdf;Integrated
Security=True;User Instance=True"

End Sub

Merci de m'aider
Bart

5 réponses

Avatar
Sylvain Lafontaine
Oh boy! Vous voulez commencez par vouloir connecter de façon dynamique un
fichier dbf sans même savoir si vous pouvez vous connecter au sql-server
avec sa configuration actuelle. Si j'étais vous, j'y irais étape par étape
et j'essayerais avec une base de donnée attachée de façon permanente
d'abord.

De plus, vous voulez utiliser SQLOLEDB au lieu d'utiliser le client natif
pour SQL-Server 2005 pour faire ce genre de chose; je n'ai jamais essayé
mais je ne serais pas étonné que SQLOLEDB en soit incapable.

Si vous êtes bien sûr que votre sql-server est configuré convenablement,
essayez avec le client natif (comme toujours, attention de ne pas mélanger
ODBC avec OLEDB) : http://www.connectionstrings.com/?carrier=sqlserver2005

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


"Bart" wrote in message
news:
Bonjour,

J'essaye de me connecter à une base de données de type MDF (sqlserver
express 2005) qui se situe dans:
c:inetpubwwwrootreskrosqlApp_Data.

J'ai l'erreur suivante:

Provider error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB
status value, if available. No work was done"

Le code dans ASP file:
--------------------
<%
set objdc = Server.CreateObject("ADODB.Connection")
objdc.Open(application("newres")) 'ligne erreur
%>

global.asa:
----------
Sub Application_OnStart
Application("newres") > "Provider=SQLOLEDB;DATABASE=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Data
Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
Security=True;User Instance=True"


'aussi essayé avec:
Sub Application_OnStart
Application("newres") = "Provider=SQLOLEDB;DATABASE=newres;Data
Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
Security=True;User Instance=True"

End Sub

Merci de m'aider
Bart





Avatar
Bart
Merci de me répondre.
Ceci: "Si j'étais vous, j'y irais étape par étape et j'essayerais avec une
base de donnée attachée de façon permanente d'abord".
ne pose pas de problème.

Entre-temps, j'ai essayé ceci:
Application("newresMDF") = "Driver={SQL Native
Client};Server=.SQLExpress;AttachDbFilename=
c:inetpubwwwroottestapp_codenewres.mdf;Database=c:inetpubwwwroottestapp_codenewres.mdf;
Trusted_Connection=Yes;"

et ceci:

Application("newresMDF") ="Driver={SQL Native
Client};Server=.SQLExpress;AttachDbFilename=|DataDirectory|newres.mdf;Trusted_Connection=Yes;"

mais à chaque fois, j'ai l'erreur:
"Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][SQL Native Client][SQL Server]CREATE DATABASE permission denied
in database 'master'."

à la ligne: objdc.Open(application("newresMDF"))


Le problème, je crois, est le paramètre Database. Que faut-il y mettre?J'ai
fait cette commande pour obtenir le nom de la db:
SELECT DB_NAME() AS [Current Database]
ce qui me donne: c:inetpubwwwroottestapp_codenewres.mdf


Voilà où j'en suis après 3 jours de recherche ...


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)>
schreef in bericht news:OALWP$
Oh boy! Vous voulez commencez par vouloir connecter de façon dynamique un
fichier dbf sans même savoir si vous pouvez vous connecter au sql-server
avec sa configuration actuelle. Si j'étais vous, j'y irais étape par
étape et j'essayerais avec une base de donnée attachée de façon permanente
d'abord.

De plus, vous voulez utiliser SQLOLEDB au lieu d'utiliser le client natif
pour SQL-Server 2005 pour faire ce genre de chose; je n'ai jamais essayé
mais je ne serais pas étonné que SQLOLEDB en soit incapable.

Si vous êtes bien sûr que votre sql-server est configuré convenablement,
essayez avec le client natif (comme toujours, attention de ne pas mélanger
ODBC avec OLEDB) : http://www.connectionstrings.com/?carrier=sqlserver2005

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


"Bart" wrote in message
news:
Bonjour,

J'essaye de me connecter à une base de données de type MDF (sqlserver
express 2005) qui se situe dans:
c:inetpubwwwrootreskrosqlApp_Data.

J'ai l'erreur suivante:

Provider error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB
status value, if available. No work was done"

Le code dans ASP file:
--------------------
<%
set objdc = Server.CreateObject("ADODB.Connection")
objdc.Open(application("newres")) 'ligne erreur
%>

global.asa:
----------
Sub Application_OnStart
Application("newres") >> "Provider=SQLOLEDB;DATABASE=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Data
Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
Security=True;User Instance=True"


'aussi essayé avec:
Sub Application_OnStart
Application("newres") = "Provider=SQLOLEDB;DATABASE=newres;Data
Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
Security=True;User Instance=True"

End Sub

Merci de m'aider
Bart









Avatar
Sylvain Lafontaine
D'après le message « CREATE DATABASE permission denied in database
'master'. », il semble s'agir d'un problème de permission.

Premièrement, il faut savoir ce que représente Trusted_Connection: est-ce
que cette machine vous appartient et que vous êtes chez-vous et que vous
utiliser un compte administrateur ou si vous êtes chez un hébergeur, sur un
LAN au bureau ou encore que vous appelez ce code à partir de d'un site web
IIS ou même peut-être autre chose?

Deuxièment, est-ce que vous êtes capable de vous connecter au serveur en
utilisant SQL-Server Management Studio Express (SSMSE) en utilisant
Trusted_Connection ou le même compte représenté par Trusted_Connection du
point 1? Si oui, êtes-vous capable de créer une nouvelle base de donnée
avec ce compte sur ce serveur?

Troisièmemt, si le compte Trusted_Connection peut s'avérer problématique
(comme par exemple si ce code est du ASP.NET), alors activer
l'authentification sql (si ce n'est déjà fait) et essayez avec le compte «
sa » et son mot de passe. Commencez d'abord par faire vos tests avec le
compte « sa » en utilisant SSMSE.

Quatrièmement, « c:inetpubwwwroottestapp_codenewres.mdf; » n'est
sûrement pas un nom valide pour le paramètre Database; essayer plutôt avec
simplement le mot « newres ».

Cinquièmement, utiliser l'abréviation « |DataDirectory| » est compliquée,
voir l'article:
http://blogs.msdn.com/smartclientdata/archive/2005/08/26/456886.aspx

Et finalement, comme je l'ai déjà dit, avant de faire vos tests en attachant
dynamiquement une base de donnée, avec tous les problèmes supplémentaires de
permission que cela comporte, vous devez d'abord vérifier votre connection
au serveur en utilisant une base attachée de façon permanente ou indiquer
que ça fonctionne déjà si vous avez déjà fait ce test.

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


"Bart" wrote in message
news:
Merci de me répondre.
Ceci: "Si j'étais vous, j'y irais étape par étape et j'essayerais avec une
base de donnée attachée de façon permanente d'abord".
ne pose pas de problème.

Entre-temps, j'ai essayé ceci:
Application("newresMDF") = "Driver={SQL Native
Client};Server=.SQLExpress;AttachDbFilename=
c:inetpubwwwroottestapp_codenewres.mdf;Database=c:inetpubwwwroottestapp_codenewres.mdf;
Trusted_Connection=Yes;"

et ceci:

Application("newresMDF") ="Driver={SQL Native
Client};Server=.SQLExpress;AttachDbFilename=|DataDirectory|newres.mdf;Trusted_Connection=Yes;"

mais à chaque fois, j'ai l'erreur:
"Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][SQL Native Client][SQL Server]CREATE DATABASE permission
denied in database 'master'."

à la ligne: objdc.Open(application("newresMDF"))


Le problème, je crois, est le paramètre Database. Que faut-il y
mettre?J'ai fait cette commande pour obtenir le nom de la db:
SELECT DB_NAME() AS [Current Database]
ce qui me donne: c:inetpubwwwroottestapp_codenewres.mdf


Voilà où j'en suis après 3 jours de recherche ...


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)>
schreef in bericht news:OALWP$
Oh boy! Vous voulez commencez par vouloir connecter de façon dynamique
un fichier dbf sans même savoir si vous pouvez vous connecter au
sql-server avec sa configuration actuelle. Si j'étais vous, j'y irais
étape par étape et j'essayerais avec une base de donnée attachée de façon
permanente d'abord.

De plus, vous voulez utiliser SQLOLEDB au lieu d'utiliser le client natif
pour SQL-Server 2005 pour faire ce genre de chose; je n'ai jamais essayé
mais je ne serais pas étonné que SQLOLEDB en soit incapable.

Si vous êtes bien sûr que votre sql-server est configuré convenablement,
essayez avec le client natif (comme toujours, attention de ne pas
mélanger ODBC avec OLEDB) :
http://www.connectionstrings.com/?carrier=sqlserver2005

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


"Bart" wrote in message
news:
Bonjour,

J'essaye de me connecter à une base de données de type MDF (sqlserver
express 2005) qui se situe dans:
c:inetpubwwwrootreskrosqlApp_Data.

J'ai l'erreur suivante:

Provider error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB
status value, if available. No work was done"

Le code dans ASP file:
--------------------
<%
set objdc = Server.CreateObject("ADODB.Connection")
objdc.Open(application("newres")) 'ligne erreur
%>

global.asa:
----------
Sub Application_OnStart
Application("newres") >>> "Provider=SQLOLEDB;DATABASE=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Data
Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
Security=True;User Instance=True"


'aussi essayé avec:
Sub Application_OnStart
Application("newres") = "Provider=SQLOLEDB;DATABASE=newres;Data
Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
Security=True;User Instance=True"

End Sub

Merci de m'aider
Bart













Avatar
WOLO Laurent
Je me demande bien l'interêt de faire compliqué si vous pouvez faire simple :

1-Attacher la base de données correctement
2-Utiliser ce ci : "Driver={SQL Native
Client};Server=.SQLExpress;Database=newres;Trusted_Connection=Yes;"

La seule condition ici étant de vous rassurer que le compte windows possède
les droits sur votre serveur et sur votre base de données.

Je pense que tout est déjà dit par mon homologue MVP

Bonne chance.
Avatar
WOLO Laurent
Bonjour mes amis.

Pourquoi faire compliquer si vous pouvez faire plus simple ?
Quel est l'interêt de l'attachement dynamique ? (Je vous déconseigne car
votre code ne sera pas portable sur une edition Standard ou Pro)
Je vous redis la même chose que mon homologue MVP

1- Attacher la DD
2- Utiliser simplement cette chaine de connexion
Driver={SQL Native
Client};Server=.SQLExpress;Database=newres;Trusted_Connection=Yes;

Bonne chance.
"Bart" a écrit :

Faites à votre aise ... Je suis déjà bien content que vous fassiez ces essais. Je viens de metter IUSR et IWAM en administrateur, mais ça ne donne rien de neuf ...
"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> schreef in bericht news:%23jMgNa%
Oups, petit problème de mon côté: je viens de me souvenir que l'attachement automatique d'un fichier mdf ne fonctionne qu'avec la version Express (que je n'ai pas d'installée) et pas avec les versions plus standards (que j'ai d'installées). Je ne peux donc pas faire ce petit test tout de suite car il va falloir que je m'installe une version d'Express quelque part avant.

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


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> wrote in message news:
Donc, tout fonctionne bien sauf avec ASP classique? Cela rétrécit de beaucoup les possibilités. Je vais faire quelques tests tantôt en revenant du bureau de vote mais entre-temps, avez-vous essayé avec le compte sa ?

(Puisqu'il est fort possible que ce soit tout simplement le compte utilisé par IIS en mode Trusted Connection qui n'a pas les permissions suffisantes sur la bdd. Une autre possibilité serait de mettre tout simplement les deux comptes IUSER_* et IWAM_* dans le groupe administrateur, le temps de faire quelques tests.)

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


"Bart" wrote in message news:

"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> schreef in bericht news:
> D'après le message « CREATE DATABASE permission denied in database
> 'master'. », il semble s'agir d'un problème de permission.
>
> Premièrement, il faut savoir ce que représente Trusted_Connection: est-ce
> que cette machine vous appartient et que vous êtes chez-vous et que vous
> utiliser un compte administrateur ou si vous êtes chez un hébergeur, sur un
> LAN au bureau ou encore que vous appelez ce code à partir de d'un site web
> IIS ou même peut-être autre chose?
>
sql server express est installé sur mon ordinateur dont je suis administrator

> Deuxièment, est-ce que vous êtes capable de vous connecter au serveur en
> utilisant SQL-Server Management Studio Express (SSMSE) en utilisant
> Trusted_Connection ou le même compte représenté par Trusted_Connection du
> point 1? Si oui, êtes-vous capable de créer une nouvelle base de donnée
> avec ce compte sur ce serveur?
>

Oui, j'ai installé SSMSE et je sais tout faire (créer nouvelle db, faire un Attach du fichier MDF, définir un login etc ...

> Troisièmemt, si le compte Trusted_Connection peut s'avérer problématique
> (comme par exemple si ce code est du ASP.NET), alors activer
> l'authentification sql (si ce n'est déjà fait) et essayez avec le compte «
> sa » et son mot de passe. Commencez d'abord par faire vos tests avec le
> compte « sa » en utilisant SSMSE.
>
pas de problème à ce niveau

> Quatrièmement, « c:inetpubwwwroottestapp_codenewres.mdf; » n'est
> sûrement pas un nom valide pour le paramètre Database; essayer plutôt avec
> simplement le mot « newres ».

je viens d'essayer ceci mais génère la même erreur:
Application("newresMDF") = "Driver={SQL Native
Client};Server=.SQLExpress;AttachDbFilename=c:inetpubwwwroottestapp_codenewres.mdf;Database=newres;Trusted_Connection=Yes;"


> Cinquièmement, utiliser l'abréviation « |DataDirectory| » est compliquée,
> voir l'article:
> http://blogs.msdn.com/smartclientdata/archive/2005/08/26/456886.aspx
>
> Et finalement, comme je l'ai déjà dit, avant de faire vos tests en attachant
> dynamiquement une base de donnée, avec tous les problèmes supplémentaires de
> permission que cela comporte, vous devez d'abord vérifier votre connection
> au serveur en utilisant une base attachée de façon permanente ou indiquer
> que ça fonctionne déjà si vous avez déjà fait ce test.
>
> j'ai déjà fait ce test (voir deuxième point). Je l'ai fait avec ASP.Net et aussi avec ASP classic.
Je sais accéder à une base de données fixe dans sql server express avec asp.net ET avec ASP classic.
Je sais aussi accéder à un fichier MDF avec asp.net.
Mon problème reste toujours le même: comment accéder à un fichier MDF avec ASP classic?

> Sylvain Lafontaine, ing.
> MVP - Technologies Virtual-PC
> E-mail: sylvain aei ca (fill the blanks, no spam please)
>
>
> "Bart" wrote in message
> news:
>> Merci de me répondre.
>> Ceci: "Si j'étais vous, j'y irais étape par étape et j'essayerais avec une
>> base de donnée attachée de façon permanente d'abord".
>> ne pose pas de problème.
>>
>> Entre-temps, j'ai essayé ceci:
>> Application("newresMDF") = "Driver={SQL Native
>> Client};Server=.SQLExpress;AttachDbFilename=
>> c:inetpubwwwroottestapp_codenewres.mdf;Database=c:inetpubwwwroottestapp_codenewres.mdf;
>> Trusted_Connection=Yes;"
>>
>> et ceci:
>>
>> Application("newresMDF") ="Driver={SQL Native
>> Client};Server=.SQLExpress;AttachDbFilename=|DataDirectory|newres.mdf;Trusted_Connection=Yes;"
>>
>> mais à chaque fois, j'ai l'erreur:
>> "Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
>> [Microsoft][SQL Native Client][SQL Server]CREATE DATABASE permission
>> denied in database 'master'."
>>
>> à la ligne: objdc.Open(application("newresMDF"))
>>
>>
>> Le problème, je crois, est le paramètre Database. Que faut-il y
>> mettre?J'ai fait cette commande pour obtenir le nom de la db:
>> SELECT DB_NAME() AS [Current Database]
>> ce qui me donne: c:inetpubwwwroottestapp_codenewres.mdf
>>
>>
>> Voilà où j'en suis après 3 jours de recherche ...
>>
>>
>> "Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)>
>> schreef in bericht news:OALWP$
>>> Oh boy! Vous voulez commencez par vouloir connecter de façon dynamique
>>> un fichier dbf sans même savoir si vous pouvez vous connecter au
>>> sql-server avec sa configuration actuelle. Si j'étais vous, j'y irais
>>> étape par étape et j'essayerais avec une base de donnée attachée de façon
>>> permanente d'abord.
>>>
>>> De plus, vous voulez utiliser SQLOLEDB au lieu d'utiliser le client natif
>>> pour SQL-Server 2005 pour faire ce genre de chose; je n'ai jamais essayé
>>> mais je ne serais pas étonné que SQLOLEDB en soit incapable.
>>>
>>> Si vous êtes bien sûr que votre sql-server est configuré convenablement,
>>> essayez avec le client natif (comme toujours, attention de ne pas
>>> mélanger ODBC avec OLEDB) :
>>> http://www.connectionstrings.com/?carrier=sqlserver2005
>>>
>>> --
>>> Sylvain Lafontaine, ing.
>>> MVP - Technologies Virtual-PC
>>> E-mail: sylvain aei ca (fill the blanks, no spam please)
>>>
>>>
>>> "Bart" wrote in message
>>> news:
>>>> Bonjour,
>>>>
>>>> J'essaye de me connecter à une base de données de type MDF (sqlserver
>>>> express 2005) qui se situe dans:
>>>> c:inetpubwwwrootreskrosqlApp_Data.
>>>>
>>>> J'ai l'erreur suivante:
>>>>
>>>> Provider error '80040e21'
>>>> Multiple-step OLE DB operation generated errors. Check each OLE DB
>>>> status value, if available. No work was done"
>>>>
>>>> Le code dans ASP file:
>>>> --------------------
>>>> <%
>>>> set objdc = Server.CreateObject("ADODB.Connection")
>>>> objdc.Open(application("newres")) 'ligne erreur
>>>> %>
>>>>
>>>> global.asa:
>>>> ----------
>>>> Sub Application_OnStart
>>>> Application("newres") > >>>> "Provider=SQLOLEDB;DATABASE=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Data
>>>> Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
>>>> Security=True;User Instance=True"
>>>>
>>>>
>>>> 'aussi essayé avec:
>>>> Sub Application_OnStart
>>>> Application("newres") = "Provider=SQLOLEDB;DATABASE=newres;Data
>>>> Source=.SQLEXPRESS;AttachDbFilename=c:inetpubwwwrootreskrosqlApp_Datanewres.mdf;Integrated
>>>> Security=True;User Instance=True"
>>>>
>>>> End Sub
>>>>
>>>> Merci de m'aider
>>>> Bart
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>