2017-04-12 5 views
0

J'ai créé une petite application 64 bits et je veux exécuter une requête simpledelphi: ROW-00025: non valide RowSetHandle lors de l'exécution d'une requête sur un oracle db

select field1, field2 from table where field1 = 'xyz' order by 1 

sur un oracle db.

J'utilise:

  • de Windows 10
  • client Oracle Database 11g (x64)
  • Delphi 10.1.2 Berlin
  • TADOQuery avec la chaîne de connexion:

    Provider=OraOLEDB.Oracle;Password=XYZ;User ID=XYZ;DataSource=XYZ;Persist Security Info=True 
    

Lors de l'exécution de la requête, j'obtiens l'erreur:

ROW-00025: Invalid RowSetHandle

Je n'ai jamais vu une telle erreur auparavant.
Avez-vous des idées? Si vous avez besoin de plus d'informations, faites le moi savoir dans les commentaires ci-dessous.

+0

Salut puis-je vous demander pourquoi vous n'utilisez pas dbExpress ou FireDAC? Ce sont les méthodes préférées pour se connecter à Oracle récemment. – sandman

+0

Vous pouvez le déboguer plus rapidement par Windows cmd en utilisant sqlplus. Essayez la connexion et le SQL de base comme la table SELECT * FROM – Henrikki

Répondre

2

Merci pour vos suggestions et commentaires. En attendant nous avons trouvé une solution ...

Nous devons placer le CursorLocation du ADOQuery du clUseServer au clUseClient. Avec ce changement, notre requête fonctionne. Je suppose que notre serveur Oracle a quelques problèmes.

-2

pouvez-vous essayer de cette manière,

sélectionnez champ1, champ2 de table où field1 = 'xyz' et rownum = 1;