Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1358 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requête SQL qui ne passe pas sous Acces mais sous Oracle et MSSQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requête SQL qui ne passe pas sous Acces mais sous Oracle et MSSQL

n°616299
ZZZzzz
Posté le 20-01-2004 à 08:53:51  profilanswer
 

J'écrit une application en delphi utilisant de nombreuses requêtes, et qui doit-être "compatible" avec les SGBD Oracle, MSSQL et Access. Pour le moment je m'étais toujours débrouillé pour faire des requêtes SQL qui passaient sur toutes les SGBD, mais dernièrement je bute sur l'une d'entre elles. J'ai déjà dû la rendre un peu plus compliqué qu'au départ à cause de la syntaxe d'oracle (étant parti de la SGBD MSSQL) mais sous Access pas moyen de trouver la syntaxe correcte.  
 
Voici la requête incriminée :
 
 
"UPDATE INTERVENTION AS i SET i.DATEMAJIMPCPA = ( Select   pr.DATEMAJ From PREOP pr Inner Join  ( Select Max(pr2.PREOPCLEUNIK)  As LASTPREOPCLEUNIK From PREOP pr2   Inner Join  ( Select ii.NTCLEUNIK From INTERVENTION ii Where   ii.NTCLEUNIK = 1 )  iii On pr2.NTCLEUNIK = iii.NTCLEUNIK Group by   pr2.NTCLEUNIK )  sel On pr.PREOPCLEUNIK = sel.LASTPREOPCLEUNIK ), i.VERSIONIMPCPA = ( Select   iii.VERSIONIMPCPA+1 From INTERVENTION iii Where   iii.NTCLEUNIK = 1 ) WHERE i.NTCLEUNIK=1 And i.WRITELOCK Is Null"
 
elle n'est franchement pas très compliqué, j'ai l'impression que le "SET XXX = (Select...)" n'est pas supporté sous Access d'après kk essais que j'ai pû faire, il me semblait pourtant bien que c'était supporté ! le "(Select...)" ne retourne évidemment qu'un seul résultat.
 
Différentes précisions : il s'agit d'une BD Access 2000 (les autres c MSSQL2000 et Oracle 8/9). Le message d'erreur retourné est "l'opération doit utilisé une requête qui peut-être mise à jour"
 
Any ideas ? merci.

mood
Publicité
Posté le 20-01-2004 à 08:53:51  profilanswer
 

n°616302
ZZZzzz
Posté le 20-01-2004 à 09:00:54  profilanswer
 

j'ajoute que j'ai les droits d'écriture sur la BD et il n'y a aucune contrainte d'intégrité sur les champs mis à jour, si je tape une requête plus simple du genre :
"UPDATE INTERVENTION AS i SET i.DATEMAJIMPCPA = 01/01/2003, i.VERSIONIMPCPA = 1 WHERE i.NTCLEUNIK=1 And i.WRITELOCK Is Null" alors ça passe sans prob...

n°616305
black_lord
Truth speaks from peacefulness
Posté le 20-01-2004 à 09:12:03  profilanswer
 

access c'est pas un sgbd c'est un gestionnaire de fiches ^^

n°616386
jagstang
Pa Capona ಠ_ಠ
Posté le 20-01-2004 à 10:52:19  profilanswer
 

+1

n°616393
ZZZzzz
Posté le 20-01-2004 à 10:57:10  profilanswer
 

merci pour vos réponses super constructives ;) enfin à priori il s'agit bien d'une limitation d'accès...

n°616864
Agagax
Posté le 20-01-2004 à 18:27:47  profilanswer
 

Oui, Access est très très limité mais pour un usage bureautique monoposte, ça convient.
J'avais rencontré cette erreur sur un Access 97, et je me souviens que la mise en place d'une clé primaire sur la table à updater avait résolu le problème. Essaie d'en ajouter une.
Access a des problèmes sur les update et delete avec jointure.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requête SQL qui ne passe pas sous Acces mais sous Oracle et MSSQL

 

Sujets relatifs
[postgreSQL] migration script origine oracle ?Comment passer un ' ds une variable lors d'une requete sql
Pb d'accès à un WebserviceMot de passe sur lien
[MySQL] Aide sur une requèteconcat sql sous oracle
Comment savoir qd la souris passe sur et quitte un contrôle?[SQL Server] - Le serveur#1 backupe serveur#2
[PHP] deux requetes SQL ?Aide pour l'écriture d'une requete SQL
Plus de sujets relatifs à : requête SQL qui ne passe pas sous Acces mais sous Oracle et MSSQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR