Bonjour, Voici un exemple de mise à jour d'une table à partir d'un RowSet :
sub testRowset() dim rowSet as object rowSet = createUnoService("com.sun.star.sdb.RowSet") rowSet.DataSourceName = "fournisseurs_fruits" rowSet.commandType = com.sun.star.sdb.CommandType.COMMAND rowSet.command = "SELECT * FROM soc_prod" rowSet.execute() rowSet.moveToInsertRow() rowSet.updateString(rowSet.findColumn("id_societe"), 6) rowSet.updateString(rowSet.findColumn("id_produit"), 3) rowSet.insertRow() end sub Je me suis inspiré d'un exemple en Java du Developer's Guide trouvé à cette adresse : http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Database/Example:_Querying_the_Bibliography_Database Cordialement, T. Vataire. ----- Mail Original ----- De: "François Breizh" <francois.bre...@orange.fr> À: prog@fr.openoffice.org Envoyé: Jeudi 23 Juillet 2009 18:42:47 Objet: [prog] Objet RowSet vs ResultSet 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 --------------------------------------------------------------------- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org