|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Bonjour,
Afin d'apporter un peu de dynamique à nos développements, nous avons besoin de contrôler sur une requête sql les différents colonnes en input / ouput. Lorsque l'on utilise OCI_Prepare, OCI_Execute (le petit nouveau OCI_Parse) et toutes les fonctions associées, avons-nous accès (et est-ce possible...?) à des informations sur la requête parsée? Bref, est-ce que la liste des binds attendus (ubinds, rbinds...) est accessible sous une quelconque forme? D'avance merci. Fly. |
|
|
00
|
|
|
#2 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
C'est à dire ?
la liste des binds d'un statement est accessible avec : OCI_GetBindCount() et OCI_GetBind() qui retourne un handle OCI_Bind dont tu peux explorer les propriétés..
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#3 | |||
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Citation:
Code :
Donc, dois-je réaliser un parser ou est-ce qu'OCILIB peut connaitre ces informations ? A priori, le lien ci-dessous explique comment retrouver des informations sur la liste des items sélectionnés : http://download.oracle.com/docs/cd/E...ql.htm#i441217 Merci. |
|||
|
|
00
|
|
|
#4 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
je comprends mieux.
Pour les binds, il est impossible d'avoir des infos à partir d'un ordre SQL. Cela est seulement possible une fois les bindings fait. Pour les selects, par contre, il serait possible de ne faire qu'un "describe" en terme d'OCI lors de l'appel à OCIStatementExecute() ce qui pourrait populer un resultset "vide". Pour le moment, la seule facon dans OCILIB c'est d'exécuter la requete et récupérer le resultset et explorer ses colonnes sans fetcher. De même que j'ai récemment ajouté OCI_Parse(), je pourrais rajouter une fonction OCI_Describe() qui serait un OCI_ExecuteStmt() en mode describe et qui retournerait un resultset sans aucune allocation interne pour les données du select et qui permettrait d'accéder à la définition des données... Je vais y réfléchir pour la 3.9... Le seul intêret par rapport à la solution actuelle que j'ai mentionné, c'est que d'une part il n'y aurait pas d'allocation mémoire pour les données et d'autre part que si la requête contient des appels à des séquencés, celles ci ne seraient pas modifiées.
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
Copyright © 2000-2012 - www.developpez.com