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