Manuel NAUDIN ha scritto:
Le 23/01/08, Julien<[EMAIL PROTECTED]> a écrit :
Bonjour, dans mon livre sur sql, ils indiquent que si la base accepte
les requêtes imbriquées, on peut faire un truc du genre :
INSERT INTO "table_destination"
    SELECT * FROM "table_source"
Perso je n'ai pas testé mais je vais essayer, ensuite si ça marche, ça
veut dire que tu peux le faire par macro, il faudra peut-être rélger le
problème d'éventuels doublons quand même.
D'ailleurs je viens de tester, en SQL direct, ça marche, sil la table
existante et la nouvelle table ont bien les mêmes champs.
Coucou,
mais ça ne marche que si les deux tables sont dans la même base, non ?
Je crois que Jovial veut faire ça d'une base à une autre.
Je pense qu'il faut ouvrir deux connexions : une vers la base source,
une vers la base destination.
Exécuter la requête sur la base source, récupérer le ResultSet, et
avec une boucle insérer ligne à ligne dans le base destination en
parcourant le ResultSet.

Manuel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Quelque chose comme ce-ci, peut-etre? (je ne l'ai pas essaié)

rem ----------------------------------------------------------------------
Context = createUnoService("com.sun.star.sdb.DatabaseContext")
Db = Context.getByName("Database") Conn = Db.getConnection("user","password")
Stat = Conn.CreateStatement()
Db1 = Context.getByName("Database1") Conn1 = Db1.getConnection("user","password")
Stat1 = Conn1.CreateStatement()
rem ----------------------------------------------------------------------

Result = Stat.executeQuery ("SELECT * FROM Database.tb1")

If not isNull(Result) then
While Result.next
Result1 = Stat1.executeQuery ("SELECT * FROM Database1.tb1 WHERE tb1.c1 = ' "+ Result.getString(1) + " ' ")
if not isNull(Result1) then
Stat1.executeUpdate ("UPDATE Database.tb1 SET tb1.c1=' " +Result.getString(1)+" ' tb1.c2 =' "+Result.getString(2)+" ' ")

Else
Stat1.executeUpdate ("INSERT INTO Database.tb1( c1, c2) VALUES ('"+ Result.getString(1)+" ',' "+Result.getString(2)+" ') ")
EndIf
Wend
EndIf

conn.close()

end sub



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à