Probl=E8me migration SQL 6.5 vers SQL 7.0 puis 2000
J'ex=E9cute une requ=EAte ODBC direct sur une table dont=20
l'utilisateur (SA_TMPI) pr=E9sent dans la cha=EEne de=20
connexion est le propri=E9taire. A l'ex=E9cution SQL Server=20
7.0 renvoie une erreur indiquant que la table n'existe=20
pas. Cette m=EAme requ=EAte ex=E9cut=E9e dans l'outil de requ=EAtes=20
de SQL 7.0 donne un r=E9sultat. La seule solution pour que=20
=E7a marche consisterait =E0 pr=E9fixer le nom de la table par =AB=20
SA_TMPI. =BB. Le probl=E8me est que je devrais faire la m=EAme=20
manif sur plus de 1000 requ=EAtes, alors que sans rien=20
changer ces requ=EAtes marchaient tr=E8s bien en SQL Server=20
6.5.
Pr=E9paration d'une connexion ODBC direct
Dim qd1 as querydef
Set qd1 =3D db.CreateQueryDef('REQ_ODBC_DIRECT')
qd1.Connect =3D chaine_connexion
qd1.ReturnsRecords =3D True
qd1.SQL =3D TxtSql
Cha=EEne de connexion ODBC
ODBC;DSN=3DTMPI;UID=3Dsa_tmpi;PWD=3Dmigros;APP=3DMicrosoft=20
Access;WSID=3DPAT;DATABASE=3DTMPI_pyrene_25
Requ=EAte SQL
select CleImput, CodImput, LibImput, DatValidation from=20
t_Imput where CleImput>0 order by LibImput
Droits d'acc=E8s sur la table
table propri=E9taire
t_Imput SA_TMPI
Message d'erreur retourn=E9
[Microsoft][ODBC SQL Server Driver][SQL Server]'t_Imput' :=20
Nom d'objet incorrect.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bruno reiter [MVP]
quand on référence un objet, on le cherche pour un propriétaire qui est le demandeur, si on ne trouve pas, on cherche pour dbo, sinon ... erreur: si user1 fait une requête sur T1, on cherche user1.T1 puis dbo.T1
ça fonctionne comme ça à partir de SQL7
HTH
br
"Catherine COLLARDOT" wrote in message news:0b2901c38d75$974ef4d0$ Problème migration SQL 6.5 vers SQL 7.0 puis 2000
J'exécute une requête ODBC direct sur une table dont l'utilisateur (SA_TMPI) présent dans la chaîne de connexion est le propriétaire. A l'exécution SQL Server 7.0 renvoie une erreur indiquant que la table n'existe pas. Cette même requête exécutée dans l'outil de requêtes de SQL 7.0 donne un résultat. La seule solution pour que ça marche consisterait à préfixer le nom de la table par « SA_TMPI. ». Le problème est que je devrais faire la même manif sur plus de 1000 requêtes, alors que sans rien changer ces requêtes marchaient très bien en SQL Server 6.5.
Préparation d'une connexion ODBC direct Dim qd1 as querydef Set qd1 = db.CreateQueryDef('REQ_ODBC_DIRECT') qd1.Connect = chaine_connexion qd1.ReturnsRecords = True qd1.SQL = TxtSql
Chaîne de connexion ODBC ODBC;DSN=TMPI;UID=sa_tmpi;PWD=migros;APP=Microsoft Access;WSID=PAT;DATABASE=TMPI_pyrene_25
Requête SQL select CleImput, CodImput, LibImput, DatValidation from t_Imput where CleImput>0 order by LibImput
Droits d'accès sur la table table propriétaire t_Imput SA_TMPI
Message d'erreur retourné [Microsoft][ODBC SQL Server Driver][SQL Server]'t_Imput' : Nom d'objet incorrect.
quand on référence un objet, on le cherche pour un propriétaire qui est le
demandeur, si on ne trouve pas, on cherche pour dbo, sinon ... erreur:
si user1 fait une requête sur T1, on cherche
user1.T1
puis dbo.T1
ça fonctionne comme ça à partir de SQL7
HTH
br
"Catherine COLLARDOT" <tmpi@tmpi.fr> wrote in message
news:0b2901c38d75$974ef4d0$a301280a@phx.gbl...
Problème migration SQL 6.5 vers SQL 7.0 puis 2000
J'exécute une requête ODBC direct sur une table dont
l'utilisateur (SA_TMPI) présent dans la chaîne de
connexion est le propriétaire. A l'exécution SQL Server
7.0 renvoie une erreur indiquant que la table n'existe
pas. Cette même requête exécutée dans l'outil de requêtes
de SQL 7.0 donne un résultat. La seule solution pour que
ça marche consisterait à préfixer le nom de la table par «
SA_TMPI. ». Le problème est que je devrais faire la même
manif sur plus de 1000 requêtes, alors que sans rien
changer ces requêtes marchaient très bien en SQL Server
6.5.
Préparation d'une connexion ODBC direct
Dim qd1 as querydef
Set qd1 = db.CreateQueryDef('REQ_ODBC_DIRECT')
qd1.Connect = chaine_connexion
qd1.ReturnsRecords = True
qd1.SQL = TxtSql
Chaîne de connexion ODBC
ODBC;DSN=TMPI;UID=sa_tmpi;PWD=migros;APP=Microsoft
Access;WSID=PAT;DATABASE=TMPI_pyrene_25
Requête SQL
select CleImput, CodImput, LibImput, DatValidation from
t_Imput where CleImput>0 order by LibImput
Droits d'accès sur la table
table propriétaire
t_Imput SA_TMPI
Message d'erreur retourné
[Microsoft][ODBC SQL Server Driver][SQL Server]'t_Imput' :
Nom d'objet incorrect.
quand on référence un objet, on le cherche pour un propriétaire qui est le demandeur, si on ne trouve pas, on cherche pour dbo, sinon ... erreur: si user1 fait une requête sur T1, on cherche user1.T1 puis dbo.T1
ça fonctionne comme ça à partir de SQL7
HTH
br
"Catherine COLLARDOT" wrote in message news:0b2901c38d75$974ef4d0$ Problème migration SQL 6.5 vers SQL 7.0 puis 2000
J'exécute une requête ODBC direct sur une table dont l'utilisateur (SA_TMPI) présent dans la chaîne de connexion est le propriétaire. A l'exécution SQL Server 7.0 renvoie une erreur indiquant que la table n'existe pas. Cette même requête exécutée dans l'outil de requêtes de SQL 7.0 donne un résultat. La seule solution pour que ça marche consisterait à préfixer le nom de la table par « SA_TMPI. ». Le problème est que je devrais faire la même manif sur plus de 1000 requêtes, alors que sans rien changer ces requêtes marchaient très bien en SQL Server 6.5.
Préparation d'une connexion ODBC direct Dim qd1 as querydef Set qd1 = db.CreateQueryDef('REQ_ODBC_DIRECT') qd1.Connect = chaine_connexion qd1.ReturnsRecords = True qd1.SQL = TxtSql
Chaîne de connexion ODBC ODBC;DSN=TMPI;UID=sa_tmpi;PWD=migros;APP=Microsoft Access;WSID=PAT;DATABASE=TMPI_pyrene_25
Requête SQL select CleImput, CodImput, LibImput, DatValidation from t_Imput where CleImput>0 order by LibImput
Droits d'accès sur la table table propriétaire t_Imput SA_TMPI
Message d'erreur retourné [Microsoft][ODBC SQL Server Driver][SQL Server]'t_Imput' : Nom d'objet incorrect.