IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Execution de Script Sql


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Execution de Script Sql
    Bonjour a tous
    je bute depuis ce matin sur un problème, voici j'ai un fichier texte qui contient des scripts d'insertion que je veux exécuter par programmation:
    je code avec windev firebird 2.1.2 voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TEXTESQL est une chaîne =fChargeTexte("C:\tatami.txt")
    SI SQLExec(TEXTESQL,"TRANSFERT")= Faux ALORS
    	SQLInfoGene("TRANSFERT")
    	Info("Erreur SQL : " + SQL.MesErreur)
    	SINON
    	Info("TRANSFERT EFFECTUE  SUCCES !")
    	
    FIN
    Et voici le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [ODBC Firebird Driver][Firebird]Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 2, column 1
    INSERT
    Apparament il ne reconnait même le 2eme INSERT
    Pourtant quand je charge le fichier directement dans Ibexpert ou quand j'ai seulement une ligne le code il est exécuté !

    Merci de m'éclairer
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    reste a savoir quel composant (delphi ?) est utilisé :
    la plupart des composants SQL ne permettent pas d'exécuter des scripts .
    ce n'est donc pas ( a mon avis) un problème de script
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    je suis sous windev,
    Dans ce cas donc il n'existe pas d'autre moyen de le faire ! par programmation

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    j'ai comme l'impression que ce problème ne peut être resolu, on il existe pas de moyen pour executer un fichier de script !

  5. #5
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    La fonction SQLExec ne doit pouvoir traiter qu'un seul ordre SQL à la fois.

    Donc soit vous trouvez une fonction capable d'executer un script. Soit vous faites une boucle sur SQLExec pour chacune des lignes du fichier.

    Une autre solution serait d'appeler ISQL avec le fichier en entrée.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Citation Envoyé par Barbibulle Voir le message
    La fonction SQLExec ne doit pouvoir traiter qu'un seul ordre SQL à la fois..
    surement ! je vais vérifier dans ce sens sur le forum de windev

    Citation Envoyé par Barbibulle Voir le message
    Donc soit vous trouvez une fonction capable d'executer un script. Soit vous faites une boucle sur SQLExec pour chacune des lignes du fichier.
    c'est ce que je vais faire si je n'ai plus d'alternative !

    Citation Envoyé par Barbibulle Voir le message
    Une autre solution serait d'appeler ISQL avec le fichier en entrée.
    je serai vraiment heureux que vous me montrer comment faire, je suppose que c'est a partir d'un fichier .bat

    Merci

  7. #7
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    En effet en fesant mes recherches concernant ISQL je suis tomber sur cet tuto http://www.destructor.de/firebird/isql.htm qui est assez interressante.
    concernant mon cas voici ce que j'ai fait en ligne de commande question d'essayer avant de passer a la programmation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\Programme\Firebird2\bin>isql -q -i c:\Scripts\tatami.sql
    a ma surprise voici l'erreur qui est affiché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQL> isql -q -i c:\cnts projet\tatami.sql;
    Statement failed, SQLCODE = -104
    Dynamic SQL Error
    -SQL error code = -104
    -Token unknown - line 1, column 1
    -isql
    SQL>
    la vraiment c'est la catastrophe
    j'ai besoin qu'on m'éclaire
    Merci

  8. #8
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Si vous utilisez -q il faut qu'il y ait l'instruction connect dans votre script.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    je viens de refaire ma commande, mais apparament j'ai le même code d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    C:\Program Files\Firebird\Firebird_2_1\bin>isql
    Use CONNECT or CREATE DATABASE to specify a database
    SQL> connect cnts.fdb user sysdba password masterkey;
    Database:  cnts.fdb, User: sysdba
    SQL> isql -i c:\cnts project\tatami.sql;
    Statement failed, SQLCODE = -104
    Dynamic SQL Error
    -SQL error code = -104
    -Token unknown - line 1, column 1
    -isql
    SQL>

  10. #10
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    non mettez la commande connect dans le fichier tatami.sql !

    Et ISQL ne se lance pas dans ISQL !

    ISQL c'est un programme en ligne de commande qui se lance donc soit directement le DOS, soit dans un .bat soit par programmation avec la commande shellexecute.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    ok je pense avoir compris maintenant je tente et je vous fais signe.
    toutes mes excuses pour le retard dans la reponse !
    merci

  12. #12
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    finalement j'ai pas reussi a utiliser isql j'ai donc opté pour la solution avec la boucle.
    Merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Executer des script SQL
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/02/2006, 16h05
  2. Executer un script sql ?
    Par bris dans le forum Outils
    Réponses: 2
    Dernier message: 27/02/2006, 14h52
  3. [VB]executer un script sql pour oracle
    Par akbayli01 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 15/02/2006, 15h10
  4. [Interbase & D7] executer un script SQL
    Par EGI dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/03/2005, 12h42
  5. [DEBUTANT]Comment executer un script sql
    Par peaceinpal dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2004, 08h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo