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

Requêtes MySQL Discussion :

Pb de mise à jour à partir d'un tableau Calc


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut Pb de mise à jour à partir d'un tableau Calc
    Bonjour,

    Je souhaite utiliser MYSQL comme base de donnée sous OpenOffice.org. Je rencontre un problème lors de la mise à jour à partir d'un tableau calc .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    Sub main 
    rem 
    rem ouverture table mouvement 
    rem 
    fichier = ConvertToURL("f:\Mes_Documents\Daniel\ODB\bourse.odb") 
    databasecontext = createUnoService("com.sun.star.sdb.DatabaseContext") 
    datasource = databasecontext.getByName(fichier) 
    connection = datasource.getconnection("root","daniel") 
    docbase = datasource.databasedocument 
    requete = connection.createstatement() 
    instrucsql = "insert into cours(isen,libelle,datevaleur,premier,plushaut,plusbas,dernier,volume) values('FR0000031122','AIR FRANCE','08/04/08','11.01','11.02','11.03','11.04','101')" 
    nbligne = requete.executeUpdate(instrucsql) 
    print nbligne 
    unrowset = createUnoService("com.sun.star.sdb.RowSet") 
    with unrowset 
       .activeConnection = connection 
       .commandType = com.sun.star.sdb.CommandType.TABLE 
       .command = "bourse.cours" 
       .execute 
       .next 
       print .columns(1).string 
       .dispose 
    end with    
    Rem 
    Rem Ouverture du menu 
    rem 
    DialogLibraries.LoadLibrary("Standard") 
    bibli = DialogLibraries.GetByName("Standard") 
    mondialogue = bibli.GetByName("menu") 
    dlg(1) = createUnoDialog(mondialogue) 
    dlg(1).Model.Title = "MENU GENERAL GESTION DE PORTEFEUILLE" 
    resu = dlg(1).execute 
    dlg(1).dispose 
    valeurinitiale = 0 
    avoirfiscal = 0 
    soldebancaire = 0 
    coupons = 0 
    droitsdegarde = 0 
    resultatacquis = 0 
    commissions = 0 
    End Sub 
     
     
    rem 
    rem MISE A JOUR DES COURS A PARTIR TELECHARGEMENT BOURSORAMA 
    rem 
    sub majcours 
     
    modif = dlg(1).getControl("etat") 
    modif.model.Text = "TRAITEMENT EN COURS" 
     
    courowset = createUnoService("com.sun.star.sdb.RowSet") 
    with courowset 
       .activeConnection = connection 
       .CommandType = com.sun.star.sdb.CommandType.TABLE 
       .command = "bourse.cours" 
     
       .execute 
       .next 
       print .columns(1).string    
       end with 
    taburl = convertToURL("f:\Mes_Documents\DANIEL\CALC\boursorama.xls") 
    tabcal = StarDesktop.LoadComponentFromURL(taburl,"_blank", 0, tabopt()) 
    tabfeuilles =tabcal.sheets 
    tabfeu =tabfeuilles(0) 
    ligne = 0 
    tabcel = tabfeu.getCellByPosition(0,ligne) 
    tabiesn = tabcel.FormulaLocal 
    while (tabiesn <> "") 
    tabcel = tabfeu.getCellByPosition(0,ligne) 
    tabiesn = tabcel.string 
    tabcel = tabfeu.getCellByPosition(1,ligne) 
    tablib = tabcel.string 
    tabcel = tabfeu.getCellByPosition(2,ligne) 
    tabdate = tabcel.value 
    tabcel = tabfeu.getCellByPosition(3,ligne) 
    tabpremier = tabcel.value 
    tabcel = tabfeu.getCellByPosition(4,ligne) 
    tabhaut = tabcel.value 
    tabcel = tabfeu.getCellByPosition(5,ligne) 
    tabbas = tabcel.value 
    tabcel = tabfeu.getCellByPosition(6,ligne) 
    tabdernier = tabcel.value 
    tabcel = tabfeu.getCellByPosition(7,ligne) 
    tabvolume = tabcel.value 
    'with courowset 
    '   .moveToInsertRow 
    '   .updateString(2,tabiesn) 
    '   .updateString(3,tablib) 
    '   .updateDouble(4,tabdate) 
    '   .updateDouble(5,tabpremier) 
    '   .updateDouble(6,tabhaut) 
    '   .updateDouble(7,tabbas) 
    '   .updateDouble(8,tabdernier) 
    '   .updateDouble(9,tabvolume) 
    '   .insertRow 
    '   .execute 
    '   end with 
    print tabdate 
    print tabpremier 
    instrucsql = "insert into cours(isen,libelle,datevaleur,premier,plushaut,plusbas,dernier,volume) values('tabisen','tablib','09/04/08','tabpremier','tabhaut','tabbas','tabdernier','tabvolume')" 
    nbligne = requete.executeUpdate(instrucsql) 
    print nbligne
    Ci-dessus le code qui me sert de test.

    Le premier insert fonctionne correctement

    L'instruction ".moveToInsertRow" me renvoie le message "no insert privileges"

    Quand à la dernière instructione SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    instrucsql = "insert into cours(isen,libelle,datevaleur,premier,plushaut,plusbas,dernier,volume) values('tabisen','tablib','09/04/08','tabpremier','tabhaut','tabbas','tabdernier','tabvolume')"
    elle me renvoie l'erreur "incorrect decimal value"

    Si quelqu'un peut m'aider je le remercie par avance.


    _________________
    Windows XP PRO :OPENOFFICE 2.3 : MLSQL 5.1.22-rc : MYSQL ODBC 3.51 driver

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Citation Envoyé par ft290 Voir le message
    L'instruction ".moveToInsertRow" me renvoie le message "no insert privileges"
    Ton utilisateur de connexion a-t-il tous les droits sur la table dans laquelle tu tentes d'insérer une ligne ?

    Citation Envoyé par ft290 Voir le message
    Quand à la dernière instructione SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    instrucsql = "insert into cours(isen,libelle,datevaleur,premier,plushaut,plusbas,dernier,volume) values('tabisen','tablib','09/04/08','tabpremier','tabhaut','tabbas','tabdernier','tabvolume')"
    elle me renvoie l'erreur "incorrect decimal value"
    Quel est le type de chaque champ ? Parce que là, tu tentes visiblement d'insérer des chaînes de caractères dans des champs décimaux...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Je suis connecté en tant que root :
    La première instruction "INSERT" fonctionne par contre losque je veux utiliser le RowSet j'ai en retour "no insert privileges" (meme droit sur les deux instructions)
    Quand à la dernière instruction "INSERT" avec en retour "incorrect decimal value" : dans la table les zones numérique sont déclarées en decimal(7,2) et pour les alimenter j'utilise un tableau Calc avec des cellules déclarées en numériques avec 2 décimales. Le séparateur décimal est la virgule alors que dans ma première instruction le séparateur décimal est le point.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Citation Envoyé par ft290 Voir le message
    Le séparateur décimal est la virgule alors que dans ma première instruction le séparateur décimal est le point.
    Le problème vient certainement de là.
    As-tu un moyen de remettre le point comme séparateur décimal dans la seconde instruction ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Bonjour,

    Pour remplacer la vigule par un point, je passe par une zone string. Avec cette zone erreur (normal string au lieu de numeric). Si je tranfert ma zone string avec le point comme séparateur dans une zone numérique le point devient virgule.

    Je ne vois pas comment m'en sortir. Je pense ne pas être le seul à vouloir entrer des données numérique sous MySQL.

    Merci pour votre aide

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Citation Envoyé par ft290 Voir le message
    Je ne vois pas comment m'en sortir. Je pense ne pas être le seul à vouloir entrer des données numérique sous MySQL.
    Par le biais d'OpenOffice, si...
    Normalement, on exporte un CSV, qu'on réimporte dans MySQL par la commande LOAD DATA INFILE... comme expliqué dans la FAQ, ici.

    Dans ton cas, il faut également des connaissances dans Calc et ses macros pour pouvoir t'aider.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

Discussions similaires

  1. Requête de mise à jour à partir d'une autre table
    Par clemced dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/02/2008, 11h58
  2. Requete Mise à jour à partir d'un formulaire
    Par obC++ dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 06/01/2008, 14h09
  3. Requête Mise à jour à partir d'une autre table
    Par temar dans le forum Access
    Réponses: 2
    Dernier message: 17/05/2006, 09h23
  4. Mise à jour à partir liste déroulante
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 12/05/2006, 15h13

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