Strona 1 z 1
Działania na tabelach: zmiana nazwy i kopiowanie
: sob lip 12, 2014 11:57 am
autor: Wieslaw
Szukam sposobu (makra), który zmieniałby nazwę tabeli "Historia" na "Archiwum z datą bieżącą" (lub nadawałby kolejne numery) oraz kopiowałby tabelę "Historia1" zmieniając jej nazwę na Historia". Przykład w załączniku.
Re: Działania na tabelach: zmiana nazwy i kopiowanie
: sob lip 12, 2014 8:28 pm
autor: Jan_J
Do takich rzeczy powinien wystarczyć SQL. Możesz go obudować w standardowy interfejs makropolecenia, jak np. w
https://forum.openoffice.org/pl/forum/v ... 2169#p2152, albo wpisywać do okna "Wykonaj bezpośrednio polecenie SQL" (nie myląc go z oknem kwerendy).
Referencja do dialektu SQL używanego w bazie wbudowanej do OO/LO:
http://hsqldb.org/doc/1.8/guide
Re: Działania na tabelach: zmiana nazwy i kopiowanie
: czw lip 17, 2014 10:58 pm
autor: Jan_J
SQL:
Base: Narzędzia -> SQL
Makro (Basic):
Kod: Zaznacz cały
sub zmianaNazwyTabeliWBazie()
Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim InteractionHandler as Object
Dim Statement As Object
Dim ResultSet As Object
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("moja baza") rem wpisz nazwę pod jaką Twoja baza jest zarejestrowana (przy użyciu tej metody dostępu musi być zarejestrowana)
If Not DataSource.IsPasswordRequired Then
Connection = DataSource.GetConnection("","")
Else
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Connection = DataSource.ConnectWithCompletion(InteractionHandler)
End If
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("ALTER TABLE ""stara"" RENAME TO ""nowa""")
rem zależnie od konfiguracji, może być potrzebne zatwierdzenie zmiany poleceniem Commit
Connection.Close()
end sub