exécuter une procédure stockée d'un bdr oracle avec la ordre sql
2 réponses
Christophe Vaquier
Bonjour,
Dans le cadre d'un développement sur un logiciel commercial externe qui
utilise oracle comme base de données, cette dernière n'est accessible qu'en
lecture seule. Or, pour les besoin d'un client, je dois remplir avec un
petit programme externe (Le prog fait avec WinDev) la base de données avec
des données récupérées dans un format spécifique (le prog fait office de
parseur). Pour se faire, un package de procédure stockée nommé GES_APPEL_EXT
contient la liste des procédures appellables qui permettent d'autrepasser la
restriction d'écriture pour enregistrer des données dans la base.
J'utilise ODBC puis comme source de données un pont access vers oracle crée
par le logiciel (on peut visionner la base de données oracle sous access et
y effectuer des requêtes en lecture seule avec ce pont)
Ci-dessous le code de connexion à la base sous WinDev :
NumConnexion est un entier = SQLConnecte ( "Pont Access - Oracle" , "INVITE"
, "INVITE" , "APISOFT_DOS_TEST" , "ODBC" ) // oui, le log commercial est
édité par APISOFT ;)
SI NumConnexion ALORS
Info ( "Connexion à la base de données réussie" )
bConnect = Vrai
SINON
SQLInfoGene ()
Erreur ( "La connexion à la base de données APISOFT_DOS_TEST a échoué."
, "Code erreur : " + SQL.Erreur , SQL.MesErreur )
bConnect = Faux
SQLDéconnecte ()
FIN
jusque là tout marche. Le problème maintenant, une simple requête SQL
"select * from article" renvoie un code d'erreur.
que se soit en codé avec :
SI SQLExec ( "SELECT * FROM ARTICLE" , "REQUETE" ) ALORS
RESULTAT = "Requête SQL exécutée avec succès."
SINON
SQLInfoGene ()
RESULTAT = "La requête a échoué. Code erreur : " + SQL.Erreur + " " +
SQL.MesErreur
FIN
SQLFerme ( "REQUETE" )
comme sous l'éditeur wdsql, après la connexion à la base de données,
jutiilse l'assistant de requête SQL qui m'affiche les tables et champs et
paf un message d'erreur
Quel ordre SQL faut-il lancer pour exécuter une procédure stockée de la
base. Normalement je doit avant toute chose appeler la procédure de
APISOFT_DOS_TEST.GET_APPEL_EXT.OPENSESSION(login,pass) avant d'écrire dans
la base mais je ne voit pas comment faire exécuter ça avec un sqlexec ou
même un hexecuterequetesql.
ça me renvoie une erreur invalid statement.
--
--------------------------------------------------
Christophe.
Pour me répondre directement enlever pasdespam_
--------------------------------------------------
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
Roumegou Eric
Christophe Vaquier a pensé très fort :
Bonjour,
Dans le cadre d'un développement sur un logiciel commercial externe qui utilise oracle comme base de données, cette dernière n'est accessible qu'en lecture seule. Or, pour les besoin d'un client, je dois remplir avec un petit programme externe (Le prog fait avec WinDev) la base de données avec des données récupérées dans un format spécifique (le prog fait office de parseur). Pour se faire, un package de procédure stockée nommé GES_APPEL_EXT contient la liste des procédures appellables qui permettent d'autrepasser la restriction d'écriture pour enregistrer des données dans la base.
J'utilise ODBC puis comme source de données un pont access vers oracle crée par le logiciel (on peut visionner la base de données oracle sous access et y effectuer des requêtes en lecture seule avec ce pont)
Ci-dessous le code de connexion à la base sous WinDev :
NumConnexion est un entier = SQLConnecte ( "Pont Access - Oracle" , "INVITE" , "INVITE" , "APISOFT_DOS_TEST" , "ODBC" ) // oui, le log commercial est édité par APISOFT ;)
SI NumConnexion ALORS Info ( "Connexion à la base de données réussie" ) bConnect = Vrai SINON SQLInfoGene () Erreur ( "La connexion à la base de données APISOFT_DOS_TEST a échoué." , "Code erreur : " + SQL.Erreur , SQL.MesErreur ) bConnect = Faux SQLDéconnecte () FIN
jusque là tout marche. Le problème maintenant, une simple requête SQL "select * from article" renvoie un code d'erreur. que se soit en codé avec :
SI SQLExec ( "SELECT * FROM ARTICLE" , "REQUETE" ) ALORS RESULTAT = "Requête SQL exécutée avec succès." SINON SQLInfoGene () RESULTAT = "La requête a échoué. Code erreur : " + SQL.Erreur + " " + SQL.MesErreur FIN
SQLFerme ( "REQUETE" )
comme sous l'éditeur wdsql, après la connexion à la base de données, jutiilse l'assistant de requête SQL qui m'affiche les tables et champs et paf un message d'erreur
Quel ordre SQL faut-il lancer pour exécuter une procédure stockée de la base. Normalement je doit avant toute chose appeler la procédure de APISOFT_DOS_TEST.GET_APPEL_EXT.OPENSESSION(login,pass) avant d'écrire dans la base mais je ne voit pas comment faire exécuter ça avec un sqlexec ou même un hexecuterequetesql. ça me renvoie une erreur invalid statement.
je doute que tu puisses lancer des PS depuis un accès ODBC. Avec l'accès natif de Pcsoft, il y a déjà des problèmes avec les paramètres de sorties (il y a eu, je ne sais plus si c'est tjrs pareil en 9 ?).
Je te conseille d'utiliser pour ça oracle4wd l'accès alternatif (voire site sqlmanagerx). Lui fonctionne très bien pour les PS.
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
Christophe Vaquier a pensé très fort :
Bonjour,
Dans le cadre d'un développement sur un logiciel commercial externe qui
utilise oracle comme base de données, cette dernière n'est accessible qu'en
lecture seule. Or, pour les besoin d'un client, je dois remplir avec un petit
programme externe (Le prog fait avec WinDev) la base de données avec des
données récupérées dans un format spécifique (le prog fait office de
parseur). Pour se faire, un package de procédure stockée nommé GES_APPEL_EXT
contient la liste des procédures appellables qui permettent d'autrepasser la
restriction d'écriture pour enregistrer des données dans la base.
J'utilise ODBC puis comme source de données un pont access vers oracle crée
par le logiciel (on peut visionner la base de données oracle sous access et y
effectuer des requêtes en lecture seule avec ce pont)
Ci-dessous le code de connexion à la base sous WinDev :
NumConnexion est un entier = SQLConnecte ( "Pont Access - Oracle" , "INVITE"
, "INVITE" , "APISOFT_DOS_TEST" , "ODBC" ) // oui, le log commercial est
édité par APISOFT ;)
SI NumConnexion ALORS
Info ( "Connexion à la base de données réussie" )
bConnect = Vrai
SINON
SQLInfoGene ()
Erreur ( "La connexion à la base de données APISOFT_DOS_TEST a échoué." ,
"Code erreur : " + SQL.Erreur , SQL.MesErreur )
bConnect = Faux
SQLDéconnecte ()
FIN
jusque là tout marche. Le problème maintenant, une simple requête SQL "select
* from article" renvoie un code d'erreur.
que se soit en codé avec :
SI SQLExec ( "SELECT * FROM ARTICLE" , "REQUETE" ) ALORS
RESULTAT = "Requête SQL exécutée avec succès."
SINON
SQLInfoGene ()
RESULTAT = "La requête a échoué. Code erreur : " + SQL.Erreur + " " +
SQL.MesErreur
FIN
SQLFerme ( "REQUETE" )
comme sous l'éditeur wdsql, après la connexion à la base de données,
jutiilse l'assistant de requête SQL qui m'affiche les tables et champs et paf
un message d'erreur
Quel ordre SQL faut-il lancer pour exécuter une procédure stockée de la base.
Normalement je doit avant toute chose appeler la procédure de
APISOFT_DOS_TEST.GET_APPEL_EXT.OPENSESSION(login,pass) avant d'écrire dans la
base mais je ne voit pas comment faire exécuter ça avec un sqlexec ou même un
hexecuterequetesql.
ça me renvoie une erreur invalid statement.
je doute que tu puisses lancer des PS depuis un accès ODBC.
Avec l'accès natif de Pcsoft, il y a déjà des problèmes avec les
paramètres de sorties (il y a eu, je ne sais plus si c'est tjrs pareil
en 9 ?).
Je te conseille d'utiliser pour ça oracle4wd l'accès alternatif (voire
site sqlmanagerx). Lui fonctionne très bien pour les PS.
--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Dans le cadre d'un développement sur un logiciel commercial externe qui utilise oracle comme base de données, cette dernière n'est accessible qu'en lecture seule. Or, pour les besoin d'un client, je dois remplir avec un petit programme externe (Le prog fait avec WinDev) la base de données avec des données récupérées dans un format spécifique (le prog fait office de parseur). Pour se faire, un package de procédure stockée nommé GES_APPEL_EXT contient la liste des procédures appellables qui permettent d'autrepasser la restriction d'écriture pour enregistrer des données dans la base.
J'utilise ODBC puis comme source de données un pont access vers oracle crée par le logiciel (on peut visionner la base de données oracle sous access et y effectuer des requêtes en lecture seule avec ce pont)
Ci-dessous le code de connexion à la base sous WinDev :
NumConnexion est un entier = SQLConnecte ( "Pont Access - Oracle" , "INVITE" , "INVITE" , "APISOFT_DOS_TEST" , "ODBC" ) // oui, le log commercial est édité par APISOFT ;)
SI NumConnexion ALORS Info ( "Connexion à la base de données réussie" ) bConnect = Vrai SINON SQLInfoGene () Erreur ( "La connexion à la base de données APISOFT_DOS_TEST a échoué." , "Code erreur : " + SQL.Erreur , SQL.MesErreur ) bConnect = Faux SQLDéconnecte () FIN
jusque là tout marche. Le problème maintenant, une simple requête SQL "select * from article" renvoie un code d'erreur. que se soit en codé avec :
SI SQLExec ( "SELECT * FROM ARTICLE" , "REQUETE" ) ALORS RESULTAT = "Requête SQL exécutée avec succès." SINON SQLInfoGene () RESULTAT = "La requête a échoué. Code erreur : " + SQL.Erreur + " " + SQL.MesErreur FIN
SQLFerme ( "REQUETE" )
comme sous l'éditeur wdsql, après la connexion à la base de données, jutiilse l'assistant de requête SQL qui m'affiche les tables et champs et paf un message d'erreur
Quel ordre SQL faut-il lancer pour exécuter une procédure stockée de la base. Normalement je doit avant toute chose appeler la procédure de APISOFT_DOS_TEST.GET_APPEL_EXT.OPENSESSION(login,pass) avant d'écrire dans la base mais je ne voit pas comment faire exécuter ça avec un sqlexec ou même un hexecuterequetesql. ça me renvoie une erreur invalid statement.
je doute que tu puisses lancer des PS depuis un accès ODBC. Avec l'accès natif de Pcsoft, il y a déjà des problèmes avec les paramètres de sorties (il y a eu, je ne sais plus si c'est tjrs pareil en 9 ?).
Je te conseille d'utiliser pour ça oracle4wd l'accès alternatif (voire site sqlmanagerx). Lui fonctionne très bien pour les PS.
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
Christophe Vaquier
OK, je vais l'essayer vu que je l'avais télécharger en dernier recours
"Roumegou Eric" a écrit dans le message de news:
Christophe Vaquier a pensé très fort :
Bonjour,
Dans le cadre d'un développement sur un logiciel commercial externe qui utilise oracle comme base de données, cette dernière n'est accessible qu'en lecture seule. Or, pour les besoin d'un client, je dois remplir avec un petit programme externe (Le prog fait avec WinDev) la base de données avec des données récupérées dans un format spécifique (le prog fait office de parseur). Pour se faire, un package de procédure stockée nommé GES_APPEL_EXT contient la liste des procédures appellables qui permettent d'autrepasser la restriction d'écriture pour enregistrer des données dans la base.
J'utilise ODBC puis comme source de données un pont access vers oracle crée par le logiciel (on peut visionner la base de données oracle sous access et y effectuer des requêtes en lecture seule avec ce pont)
Ci-dessous le code de connexion à la base sous WinDev :
NumConnexion est un entier = SQLConnecte ( "Pont Access - Oracle" , "INVITE" , "INVITE" , "APISOFT_DOS_TEST" , "ODBC" ) // oui, le log commercial est édité par APISOFT ;)
SI NumConnexion ALORS Info ( "Connexion à la base de données réussie" ) bConnect = Vrai SINON SQLInfoGene () Erreur ( "La connexion à la base de données APISOFT_DOS_TEST a échoué." , "Code erreur : " + SQL.Erreur , SQL.MesErreur ) bConnect = Faux SQLDéconnecte () FIN
jusque là tout marche. Le problème maintenant, une simple requête SQL "select * from article" renvoie un code d'erreur. que se soit en codé avec :
SI SQLExec ( "SELECT * FROM ARTICLE" , "REQUETE" ) ALORS RESULTAT = "Requête SQL exécutée avec succès." SINON SQLInfoGene () RESULTAT = "La requête a échoué. Code erreur : " + SQL.Erreur + " " + SQL.MesErreur FIN
SQLFerme ( "REQUETE" )
comme sous l'éditeur wdsql, après la connexion à la base de données, jutiilse l'assistant de requête SQL qui m'affiche les tables et champs et paf un message d'erreur
Quel ordre SQL faut-il lancer pour exécuter une procédure stockée de la base. Normalement je doit avant toute chose appeler la procédure de APISOFT_DOS_TEST.GET_APPEL_EXT.OPENSESSION(login,pass) avant d'écrire dans la base mais je ne voit pas comment faire exécuter ça avec un sqlexec ou même un hexecuterequetesql. ça me renvoie une erreur invalid statement.
je doute que tu puisses lancer des PS depuis un accès ODBC. Avec l'accès natif de Pcsoft, il y a déjà des problèmes avec les paramètres de sorties (il y a eu, je ne sais plus si c'est tjrs pareil en 9 ?).
Je te conseille d'utiliser pour ça oracle4wd l'accès alternatif (voire site sqlmanagerx). Lui fonctionne très bien pour les PS.
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)
OK, je vais l'essayer vu que je l'avais télécharger en dernier recours
"Roumegou Eric" <UtilisezleLien@fin.msg> a écrit dans le message de news:
mn.d2947d593414addb.11485@fin.msg...
Christophe Vaquier a pensé très fort :
Bonjour,
Dans le cadre d'un développement sur un logiciel commercial externe qui
utilise oracle comme base de données, cette dernière n'est accessible
qu'en lecture seule. Or, pour les besoin d'un client, je dois remplir
avec un petit programme externe (Le prog fait avec WinDev) la base de
données avec des données récupérées dans un format spécifique (le prog
fait office de parseur). Pour se faire, un package de procédure stockée
nommé GES_APPEL_EXT contient la liste des procédures appellables qui
permettent d'autrepasser la restriction d'écriture pour enregistrer des
données dans la base.
J'utilise ODBC puis comme source de données un pont access vers oracle
crée par le logiciel (on peut visionner la base de données oracle sous
access et y effectuer des requêtes en lecture seule avec ce pont)
Ci-dessous le code de connexion à la base sous WinDev :
NumConnexion est un entier = SQLConnecte ( "Pont Access - Oracle" ,
"INVITE" , "INVITE" , "APISOFT_DOS_TEST" , "ODBC" ) // oui, le log
commercial est édité par APISOFT ;)
SI NumConnexion ALORS
Info ( "Connexion à la base de données réussie" )
bConnect = Vrai
SINON
SQLInfoGene ()
Erreur ( "La connexion à la base de données APISOFT_DOS_TEST a
échoué." , "Code erreur : " + SQL.Erreur , SQL.MesErreur )
bConnect = Faux
SQLDéconnecte ()
FIN
jusque là tout marche. Le problème maintenant, une simple requête SQL
"select * from article" renvoie un code d'erreur.
que se soit en codé avec :
SI SQLExec ( "SELECT * FROM ARTICLE" , "REQUETE" ) ALORS
RESULTAT = "Requête SQL exécutée avec succès."
SINON
SQLInfoGene ()
RESULTAT = "La requête a échoué. Code erreur : " + SQL.Erreur + " " +
SQL.MesErreur
FIN
SQLFerme ( "REQUETE" )
comme sous l'éditeur wdsql, après la connexion à la base de données,
jutiilse l'assistant de requête SQL qui m'affiche les tables et champs et
paf un message d'erreur
Quel ordre SQL faut-il lancer pour exécuter une procédure stockée de la
base. Normalement je doit avant toute chose appeler la procédure de
APISOFT_DOS_TEST.GET_APPEL_EXT.OPENSESSION(login,pass) avant d'écrire
dans la base mais je ne voit pas comment faire exécuter ça avec un
sqlexec ou même un hexecuterequetesql.
ça me renvoie une erreur invalid statement.
je doute que tu puisses lancer des PS depuis un accès ODBC.
Avec l'accès natif de Pcsoft, il y a déjà des problèmes avec les
paramètres de sorties (il y a eu, je ne sais plus si c'est tjrs pareil en
9 ?).
Je te conseille d'utiliser pour ça oracle4wd l'accès alternatif (voire
site sqlmanagerx). Lui fonctionne très bien pour les PS.
--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
OK, je vais l'essayer vu que je l'avais télécharger en dernier recours
"Roumegou Eric" a écrit dans le message de news:
Christophe Vaquier a pensé très fort :
Bonjour,
Dans le cadre d'un développement sur un logiciel commercial externe qui utilise oracle comme base de données, cette dernière n'est accessible qu'en lecture seule. Or, pour les besoin d'un client, je dois remplir avec un petit programme externe (Le prog fait avec WinDev) la base de données avec des données récupérées dans un format spécifique (le prog fait office de parseur). Pour se faire, un package de procédure stockée nommé GES_APPEL_EXT contient la liste des procédures appellables qui permettent d'autrepasser la restriction d'écriture pour enregistrer des données dans la base.
J'utilise ODBC puis comme source de données un pont access vers oracle crée par le logiciel (on peut visionner la base de données oracle sous access et y effectuer des requêtes en lecture seule avec ce pont)
Ci-dessous le code de connexion à la base sous WinDev :
NumConnexion est un entier = SQLConnecte ( "Pont Access - Oracle" , "INVITE" , "INVITE" , "APISOFT_DOS_TEST" , "ODBC" ) // oui, le log commercial est édité par APISOFT ;)
SI NumConnexion ALORS Info ( "Connexion à la base de données réussie" ) bConnect = Vrai SINON SQLInfoGene () Erreur ( "La connexion à la base de données APISOFT_DOS_TEST a échoué." , "Code erreur : " + SQL.Erreur , SQL.MesErreur ) bConnect = Faux SQLDéconnecte () FIN
jusque là tout marche. Le problème maintenant, une simple requête SQL "select * from article" renvoie un code d'erreur. que se soit en codé avec :
SI SQLExec ( "SELECT * FROM ARTICLE" , "REQUETE" ) ALORS RESULTAT = "Requête SQL exécutée avec succès." SINON SQLInfoGene () RESULTAT = "La requête a échoué. Code erreur : " + SQL.Erreur + " " + SQL.MesErreur FIN
SQLFerme ( "REQUETE" )
comme sous l'éditeur wdsql, après la connexion à la base de données, jutiilse l'assistant de requête SQL qui m'affiche les tables et champs et paf un message d'erreur
Quel ordre SQL faut-il lancer pour exécuter une procédure stockée de la base. Normalement je doit avant toute chose appeler la procédure de APISOFT_DOS_TEST.GET_APPEL_EXT.OPENSESSION(login,pass) avant d'écrire dans la base mais je ne voit pas comment faire exécuter ça avec un sqlexec ou même un hexecuterequetesql. ça me renvoie une erreur invalid statement.
je doute que tu puisses lancer des PS depuis un accès ODBC. Avec l'accès natif de Pcsoft, il y a déjà des problèmes avec les paramètres de sorties (il y a eu, je ne sais plus si c'est tjrs pareil en 9 ?).
Je te conseille d'utiliser pour ça oracle4wd l'accès alternatif (voire site sqlmanagerx). Lui fonctionne très bien pour les PS.
-- Eric Roumégou http://cerbermail.com/?TSoulBerPA (cliquez sur le lien ci-dessus pour me contacter en privé)