Autor Wątek: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10  (Przeczytany 27723 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Offline Siwy

  • Junior Developer
  • Młodzież
  • *
[Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« dnia: Listopada 03, 2010, 00:02:45 am »
Program z założenia powinien łączyć kilka archiwów wtw, np. kiedy zmuszeni byliśmy stworzyć gdzieś profil od nowa i teraz chcielibyśmy dołączyć archiwum z tego czasu do starego.
Użycie:
wybieramy archiwum, do którego chcemy importować, następnie kilka archiwów, która mają zostać importowane.

program kopiuję tabele wtw_chat_index(index_id, contact_id, contact_net, start_time) i wtw_chat_data(index_id, entry_time, entry_text, entry_flags) z wymienionych baz do podstawowej zmieniając index_id, żeby były unikatowe

uwagi:
-zrobić kopię zapasową! teraz robi się sama
-używać przy wyłączonym wtw
-działa wolno, także cierpliwości

Update 0.1.1:
Kopiowanie działa dużo szybciej, thx whd.

Update ver. 0.2.0:
-interfejs okienkowy (jestem z niego dumny, bo to mój pierwszy program w WinApi :P )
-całość działa dużo szybciej (tak, jak powinna od początku), dzięki inteligentniej napisanym zapytaniom SQL
-SQLite aktualizowane do 3.7.4


Update ver. 0.2.1 - 30.01.11:
-import archiwum GG10 (GG8 ma takie samo archiwum?), zwrócić uwagę, czy czasy się nie przekłamują - wtw samo nauczyło się to robić, więc opcja już niepotrzebna
-zmiany kosmetyczne
-trochę więcej informacji o ewentualnych błędach

prośby/zamówienia/plany na przyszłość:
-kadu
-tlen 7
« Ostatnia zmiana: Czerwca 02, 2011, 17:01:38 pm wysłana przez Siwy »

Offline whd

Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #1 dnia: Listopada 04, 2010, 20:36:41 pm »
Przy wywoływaniu insert korzystasz z transakcji? Jeśli nie używasz begin transaction (...) commit; to sqlite każdego inserta traktuje jako osobną transakcję, która musi być potwierdzona przez co wydajność takich zapytań znacznie spada (tak wyczytałem w docach na stronie oficjalnej, wczoraj zacząłem się w to zagłębiać dopiero).

btw to kopiowanie odbywa się metodą 'na pałę' tzn czy dubluje ewentualnie rozmowy?
« Ostatnia zmiana: Listopada 04, 2010, 20:53:54 pm wysłana przez whd »

Offline Siwy

  • Junior Developer
  • Młodzież
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #2 dnia: Listopada 05, 2010, 14:36:35 pm »
Właśnie tak myślałem, że commit jest za każdym razem wywoływany, ale używam tylko jednej funkcji sqlite3_exec i nie wiedziałem, jak to zmienić, poczytam.

Nie żadnych duplikatów nie sprawdza, bo niby skąd ta sama rozmowa miałaby być w dwóch różnych archiwach?
Przy kopiowaniu zmieniam tylko id w tabelach i zamieniam ' w treści wiadomości na '', żeby sql poprawnie je zinterpretował.

edit:
faktycznie, po dodaniu sqlite3_exec(db1, "BEGIN", 0, 0, 0); i [...]COMMIT[..] samo kopiowanie wykonuje się dużo szybciej, sqlite3_open nadal jednak długo trwa, ale to zależy od rozmiaru bazy.

Jednak to nie sqlite3_open, a
"SELECT max(wtw_chat_index.index_id), max(wtw_chat_data.chat_id) FROM wtw_chat_index, wtw_chat_data;",
którym sprawdzam najwyższe indeksy. Zna ktoś jakieś szybsze zapytanie?
« Ostatnia zmiana: Listopada 05, 2010, 15:19:02 pm wysłana przez Siwy »

Offline kwiateusz

Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #3 dnia: Listopada 05, 2010, 18:35:38 pm »
ja czesto robie ze kopiuje archiwum ze stacjonarki na lapa i chciałbym tylko rozniece pomiedzy mergowac

moglbys zakladac indeksy unikalne, robic wszystkie inserty i po całej operacji usunac indeksy, duplikaty sie nie dodadza :)

Offline refresh

  • Grammarnazi
  • Global Moderator
  • Starszyzna
  • *
  • Ciasteczkowy Potwór :3
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #4 dnia: Listopada 05, 2010, 20:47:18 pm »
*przypuszczenia* a to id to nie jest może serial od razu? wtedy nie byłoby problemu z szukaniem najwyższego.

Offline whd

Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #5 dnia: Listopada 06, 2010, 10:42:52 am »
Nie żadnych duplikatów nie sprawdza, bo niby skąd ta sama rozmowa miałaby być w dwóch różnych archiwach?

Chociażby multilogowanie. Poza tym ja mam spory śmietnik z archwium bo mam na piecu, lapie i jescze mobilne na pienie. Wszystkie pochodzą z jednego tylko kopiowane w różnym czasie ;)

Nie za bardzo rozumiem pomysł kwiateusza z unikalnymi indeksami. Jeśli mamy dwie różne bazy to na jakiej zasadzie przydzielić unikalne indeksy żeby dane rozmowy miały ten sam indeks? Czy źle to rozumiem?

Offline kwiateusz

Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #6 dnia: Listopada 06, 2010, 13:23:17 pm »
po założeniu indeksu na login i tresc rozmowy baza przy insercie pominie wartosci ktore sie dublują :)

ja tak sie bawiłem przy wawalaniu duplikatów rozmów z archiwum

Offline Siwy

  • Junior Developer
  • Młodzież
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #7 dnia: Listopada 06, 2010, 14:10:21 pm »
po założeniu indeksu na login i tresc rozmowy baza przy insercie pominie wartosci ktore sie dublują :)

można też ręcznie sprawdzać, czy się nie powtarzają, ale czy nigdy nie dostaliście 2x identycznej wiadomości od tej samej osoby, np. 'cześć', albo 'chodź na piwo'?

Offline Pelias

  • Narybek
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #8 dnia: Listopada 07, 2010, 12:32:43 pm »
Nie w tym samym entry_time.

Offline Siwy

  • Junior Developer
  • Młodzież
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #9 dnia: Listopada 07, 2010, 18:59:17 pm »
A wiadomości przy multilogowaniu mają ten sam entry_time na wszystkich instancjach programu? Znaczy, czy to pole jest ustalane przy wysyłaniu wiadomości czy jej odebraniu?

Offline Piotrek

  • Narybek
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #10 dnia: Listopada 09, 2010, 20:44:41 pm »
a mi WinRAR zgłasza problem z plikiem z pierwszego postu: "archiwum ma niewłaściwy format lub jest uszkodzone", moge prosić o ponowne wrzucenie?

a swoją drogą, jakby programik wyłapywał duplikaty, to by było bardzo fajnie z jego strony :)

Offline Tribiasz

Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #11 dnia: Listopada 09, 2010, 21:13:10 pm »
Trzeba gdzieś na forum umieścić wielkimi literami info o tym, aby załączniki pobierać Firefox'em, inaczej się nigdy nie uwolnimy od tego typu pytań i uwag...

jest wątek o tym w poradnikach, a przeczytanie poradników powinno być pierwszą czynnością którą każdy nowy powinien zrobić //zhvir
« Ostatnia zmiana: Listopada 09, 2010, 21:17:33 pm wysłana przez zhvir »
JAK COŚ PILNEGO TO PISZ:

       

Offline whd

Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #12 dnia: Listopada 12, 2010, 07:51:31 am »
A wiadomości przy multilogowaniu mają ten sam entry_time na wszystkich instancjach programu? Znaczy, czy to pole jest ustalane przy wysyłaniu wiadomości czy jej odebraniu?
entry_time zależy od czasu lokalnego jaki masz na kompie więc bardzo prawdopodobne, że będzie się różnić dla wiadomości z multilogowania

@zhvir, poważnie myślisz, że ktoś kto traktuje to forum tylko i wyłącznie jako repo z wtyczkami i nie zamierza tu postować przeczyta wszystkie poradniki? :)

Offline mocznik

  • Młodzież
  • **
    • deviantart
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #13 dnia: Listopada 12, 2010, 08:54:04 am »
Ale zanim zada się jakieś pytanie warto poszukać, czy nie jest w faq albo w poradnikach.
Wszystko co umieszczam na forum jest na licencji CC-BY-NC-ND 3.0

Offline Maniu

  • Młodzież
  • **
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #14 dnia: Stycznia 07, 2011, 14:36:59 pm »
hmm, u mnie przy próbie połączenia od razu wyrzuca błąd, że aplikacji nie da się uruchomić, ponieważ brakuje pliku msvcr100.dll Ponowne zainstalowanie aplikacji może rozwiązać problem.
Jakiś pomysł na to?

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #15 dnia: Stycznia 07, 2011, 14:43:03 pm »
Zainstaluj Microsoft Visual C++ 2010 Redistributable Package.

Offline Maniu

  • Młodzież
  • **
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #16 dnia: Stycznia 08, 2011, 09:40:05 am »
faktycznie nie miałem, że też takie zaćmienie umysłu mi przyszło ;) dzięki za pomoc

Offline Siwy

  • Junior Developer
  • Młodzież
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #17 dnia: Stycznia 16, 2011, 12:38:01 pm »
odnośnie duplikatów, wtw dorobiło się opcji ich usuwania (archiwum/konserwacja/kompaktowanie), więc problem z głowy.

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #18 dnia: Stycznia 16, 2011, 13:26:31 pm »
W zasadzie, to duplikaty są kasowane od roku przy kompaktowaniu, acz! Opcja wyłączenia tejże operacji doszła w ostatniej becie ;P

Offline Siwy

  • Junior Developer
  • Młodzież
  • *
Odp: [Prog] wtwArchMerger: Scalanie archiwów WTW, import GG10
« Odpowiedź #19 dnia: Stycznia 23, 2011, 01:31:35 am »
Update w pierwszym poście.