Bonjour,
je m'exerce à la programmation de macros accédant à une base de données Base. Dans le cas actuel j'ai une base qui contient deux tables "Documents" et "Auteurs" ; un attribut de la table Documents pointe vers un article de la table Auteurs. pour mettre à jour la tables des documents en ajoutant le nom d'un nouvel auteur, j'ai essayé les deux procédures suivantes :

' Statement.executeUpdate("INSERT INTO ""Auteurs"" (""Nom"") VALUES ('" & sNomAuteur & "')") ' ResultSet = Statement.executeQuery("SELECT ""ID_Auteur"" FROM ""Auteurs"" WHERE ""Nom""='" & sNomAuteur & "'")
'    ResultSet.Next
'    Pointeur = ResultSet.getInt(1)
'    RowSetDocuments.updateInt(4, Pointeur)
'    RowSetDocuments.updateRow()
'..........................................
   RowSetAuteurs.insertRow        ' /Erreur : Function sequence error/
   RowSetAuteurs.moveToInsertRow
   RowSetAuteurs.refreshRow
   RowSetAuteurs.updateString(2,sNomAuteur)
   RowSetAuteurs.updateRow
   RowSetDocuments.updateInt(4, RowSetAuteurs.getInt(1))
   RowSetDocuments.updateRow()

La première méthode, commentée, fonctionne, il est donc possible d'ajouter une ligne à la table Auteurs ; la seconde méthode échoue avec le message d'erreur "Function sequence error" dès la première ligne. Je n'arrive pas à trouver de développement sur cette erreur, ni comment insérer proprement une nouvelle ligne avec un objet RowSet.
J'utilise OpenOffice 3.0.1 et Ubuntu 9.04

Répondre à