cerhu > microsoft.* > microsoft.sqlserver

Christian WANECQUE (14/02/2007, 23h00)
Christian Wanecque
Microtel91 de VIgneux sur Seine

Bonjour,

Problème posé: Migration MS ACCES 2002 vers MS SQL Server EXPRESS 2005 en
conservant l'applicatif programmé en ASP.3

Il apparaît après installation du serveur SQLEXPRESS 2005 un problème de
connexion à SQLEXPRESS sous ASP.3
Après plusieurs modifications du source ASP j'obtiens le message suivant
"Délai d'attente de connexion expiré"

Soit la syntaxe ASP de connextion à la base de donnée n'est pas valable,
soit le paramétrage de la configuration D'SQL Server n'est pas bonne

Pourtant SQLEXPRESS est bien installé et la création de bases ainsi que la
connection aux bases dans SQLEXPRESS sous Microsoft Visual Studio 2005 se
passe sans problème.

Si vous aviez une idée sur la solution je vous en remercie d'avance.

Je vous développe ci-dessous la problématique

Cordialement

Christian Wanecque

---------------------------------------

Objectif de départ : Dans un enrironnement applicatif programmé en ASP.3,
remplacer les bases de données Microsof ACCES 2002 par des bases de données
SQL Server EXPRESS 2005

Contraintes à prendre en compte: Conserver l'environnement applicatif
programmé en code ASP.3 pour ne pas avoir a changer de langage de
programmation

Environnement applicatif : Serveur WEB IIS sous XP professionnel Pack 2 et
programmation ASP.3

Oppérations effectuées:

INSTALLATION:

1) Installation standard dans le répertoire "Prorammes Files" de SQLEXPRESS
2005 et de Microsoft Visual studio 2005 effecués avec succès

2) Création d'une base pour essai intitulée "Products" avec une table
"Produits" de 4 enregistrements

3) Migration d'une base de MS ACCES 2002 vers SQLEXPRESS à partir de la
fonction de migration de MS ACCES 2002

4) Mise en configuration d'exploitation de SQLEXPRESS 2005 avec l'outil de
Configuration configuration de surface SQL server (Paramétrage en System
local avec le gestionnaire de configuration SQL Server.Ink)
(activation des fonctions OPENROWSET et OPENDATASOURCE)
5) Paramétrage avec la fonction SQL Server Configuration Manager des
Connexion locales et distantes avec utilisation de TCP/IP

6) Création d'un DSN (data Source Name) nomé "PRODUCT1" avec l'outil
d'administration des sources de données ODBC de Windows en sélectionnant
le pilote " SQL Native Client" La fonction test de l'outil d'administration
délivre un message de succès de la connexion au server

7)Test de connection avec succès de la base Product à partir de Microsoft
Visual Studio 2005

EXECUTION SOUS LE WEB:

1) Premier échec de connection avec le langage source ASP suivant
fonctionnant avec les bases MS ACCESS 2002 :
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Co nnection")

connectionToDatabase.ConnectionTimeout=100

connectionToDatabase.Open "DSN=PRODUCT1"
Set
reccords=Server.CreateObject("ADODB.Recordset")
reccords.Open " SELECT * FROM Produits",(<----ligne 23)
product= reccords("product")
Response.Write("Produit: = " & product) reccords.close
%>
retournant l'erreur suivante: (pourtant le nom de table est bien écrit)
Erreur de compilation Microsoft VBScript error '800a0401'

Fin d'instruction
attendue

/iisHelp/common/500-100.asp, line 11
Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP
Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[Microsoft][SQL Native Client][SQL Server]Nom d'objet 'Produits' non valide.

/TEST0_SQL_SERV.asp, line 23

2) Modification du code source suivant en prenant en compte la nouvelle
structure objet de SQLEXPRESS où POSTE23\SQLEXPRESS est le nom du server SQL
et POSTE23 le nom d'ordinateur:
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Co nnection")

connectionToDatabase.ConnectionTimeout=100

connectionToDatabase.Open "DSN=PRODUCT1"
Set
reccords=Server.CreateObject("ADODB.Recordset")
reccords.Open " SELECT * FROM POSTE23 \SQLEXPRESS.Products.dbo.Produits"
(<----ligne 23)
product= reccords("product")
Response.Write("Produit: = " & product)
reccords.close
%>
Emission d'un nouveau message d'erreur
Erreur de compilation Microsoft VBScript error '800a0401'
Fin d'instruction attendue
/iisHelp/common/500-100.asp, line 11
Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP
Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
ADODB.Recordset error '800a0e7
Impossible d'utiliser cette connexion pour effectuer cette opération. Elle
est fermée ou non valide dans ce contexte.
/TEST0_SQL_SERV.asp, line 23
3) Nouvel essai avec la création d'un serveur sql lié en exécutant
sp_addlinkedserver dans une reqête SQL

EXEC
' @server='SQL_SERV_TST2',
'@srvproduct='',
'@provider='SQLNCLI',
'@datasrc='Products'

Et modification du code ASP suivant en prenant en compte de derver SQL lié
"SQL_SERV_TST2"

<%
Set connectionToDatabase=Server.CreateObject("ADODB.Co nnection")
connectionToDatabase.ConnectionTimeout=100
connectionToDatabase.Open "DSN=PRODUCT1"
Set reccords=Server.CreateObject("ADODB.Recordset")
reccords.Open " SELECT * FROM SQL_SERV_TST2.Products.dbo.Produits",
connectionToDatabase, 1, 2 (<----ligne 23)
product= reccords("product")
Response.Write("Produit: = " & product)
reccords.close
%>
Nouveau message d'erreur
Erreur de compilation Microsoft VBScript error '800a0401'

/iisHelp/common/500-100.asp, line 11
Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP
Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][SQL Native Client][SQL Server]Le fournisseur OLE DB 'SQLNCLI' du
serveur lié 'SQL_SERV_TST2' a retourné le message 'Délai d'attente de
connexion expiré'.
/TEST0_SQL_SERV.asp, line 23

Observation: la connexion à d'autres tables d'autres bases de données pose
le même problème. Quelle est la bonne écriture d'ASP???? Merci d'avance.
Med Bouchenafa (15/02/2007, 13h30)
Par defaut SQL Server 2005 n'autorise pas de connexion distante.
Il est fort probable que ton VS2005 est installé sur la même machine que
SQLEXPRESS
Cela expliquerait pourrquoi VS2005 peut se connecter et pas ton application
ASP.30
Romelard Fabrice [MVP] (15/02/2007, 13h33)
Bnjour,

Pour la chaine de connexion, je vous invite à regarder ici :
- [..]
Discussions similaires
alimenter une colonne dans une table sql 2005

[2005] Ajout d'un enregistrement dans une table compteur

ecrire dans une BDD avec SQLExpress

Syntaxe SQL pour renommer une colonne dans 1 table ACCESS 2000 ?


Fuseau horaire GMT +2. Il est actuellement 15h52. | Privacy Policy