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

migration SQL 6.5 vers 7.0 et 2000

1 réponse
Avatar
Catherine COLLARDOT
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.

1 réponse

Avatar
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.