|
Eksport danych do txt lub połączenie ODBC
Autor |
Wiadomość |
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Eksport danych do txt lub połączenie ODBC
Witam,
przez ostatnie dni zmagam się z Symfonia Handel 12.2.8.0 (2012.b). Mam zamiar przenieść dane do oracla, w celu tworzenia analiz, jednak nie za bardzo mogę podpiąć się do bazki aplikacji. Ściągnąłem demo, które stoi na Btrieve 6.15.430, zainstalowałem sterownik ODBC wersji 2.04, wygenerowałem pliki DDF, wskazałem je przy tworzeniu źródła ODBC, jednak cały czas dostawałem błąd przy próbie zapisu tegoż źródła informującym o błędzie logowania (login i hasło podałem takie, jak przy logowaniu do aplikacji).
Mam więc pytanko, czy komuś udało się podpiąć do bazy Symfonii (bardzo proszę o jakieś wskazówki). Ewentualnie, w jaki sposób wyeksportować dane z symfonii, używając "Raportów" i składni AmBasic'a ? Chcę wyeksportować dane wszystkich głównych obszarów do osobnych plików txt/csv/xls. Dla ułatwienia, może to być polecenie eksportujące wszystkie dane z tabel, bez filtrów.
Będę wdzięczny za pomoc. Pozdrawiam.
|
2013-01-26, 18:50 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
krzysiek
Ekspert
Rejestracja: 2007-12-11, 23:18 Posty: 1942 Pomógł: 49
|
Re: Eksport danych do txt lub połączenie ODBC
Proponuje jednak podpinać się mając za motor bazy Pervasive a nie MC. To działa.
|
2013-01-27, 15:24 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Dzięki za odpowiedź. Prawdopodobnie potrzebowałbym kupić licencję na Pervasiva żeby mieć możliwość upgradu z Btrieve 6.15? Podpięcie się do aktualnej bazy przez klienta Pervasiva również nie zadziała albo nie potrafię tego skonfigurować... Obecnie próbuję stworzyć raport w AmBasicu, wyrzucający potrzebne dane do plików txt, używając składni z IORec...jednak nie należy to do najbardziej przyjemnych i intuicyjnych rzeczy jakie robiłem. Czy w tym temacie mógłbym liczyć na jakąś pomoc? Może opis struktury bazy żebym wiedział do jakich obiektów się zwrócić żeby pobrać potrzebne dane ?
Pozdrawiam.
|
2013-01-27, 16:19 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
Re: Eksport danych do txt lub połączenie ODBC
No ale najpierw musisz napisac jakie dane potrzebujesz - "wszystkie główne obszary" to określenie nie należy do najbardziej intuicyjnych jakie słyszałem. Zresztą czasem nie warto wyważać otwartych drzwi - jest przecież parę gotowych rozwiązań analitycznych do handlu - poszukaj na google np. pulpit menedżerski do handlu
|
2013-01-27, 21:06 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Chodzi o rozwiązanie zbierające dane nie tylko z symfonii (kilku modułów) ale również z innego ERP/CRM. Mówiąc o obszarach mam na myśli Kontrahentów, Sprzedaż/Faktury (razem z liniami), Towary, Zakupy, Magazyn, Finanse itd. Celem mojego działania jest uzyskanie danych zrzuconych z tych obszarów do osobnych plików tekstowych, gdzie kolumny rekordu będą oddzielone np. średnikiem.
Udało mi się napisać kawałek procedury w AmBasicu, który wyrzuca mi do pliku pierwsze 1000 segmentów (?) z pliku, w którym jest baza kontrahentów (mam nadzieję, że dobrze to ująłem). Problem w tym, że do pliku trafiają przeróżne dane... Magazyny, Banki, kontrahenci, osoby kontaktowe, urzędy skarbowe. Nie wiem na razie w jaki sposób zidentyfikować rekordy zawierające dane kontrahentów.
Poniżej procedura (raport):
#include "Eksport kontrahentów" //#include "Zasoby"
String test Int nrBazy1 Int Nr_pliku String Plik Int jest Int Seg Int Licznik = 1
Int id String znacznik String kod String nazwa String miejscowosc String ulica String dom String lokal String kodpocz String nip
Plik = "C:\\Symfonia\\Raporty\\test9.txt" Nr_pliku = Open Plik for output
nrBazy1 = Open "C:\\Symfonia\\Demo_hm\\51kh.dat" for Base "KH" for Licznik=1 to Licznik > 1000 SetKey (nrBazy1, "ID") SetKeySeg (nrBazy1, "ID", Licznik)
jest=GetKey (nrBazy1, EQ) //Sprawdzenie zawartości wybranego segmantu klucza ustawionego rekordu Seg=GetKeySeg (nrBazy1, "ID") Print "Segment ID klucza wybranego rekordu ma wartość: ", Seg; LF //Odczyt zawartości rekordu GetRec(nrBazy1, NX) //Sprawdzenie zapisanych w rekordzie nowych informacji // id=GetField (nrBazy1, "id") + ";" znacznik=GetField (nrBazy1, "znacznik") + ";" kod=GetField (nrBazy1, "kod") + ";" nazwa=GetField (nrBazy1, "nazwa") + ";" miejscowosc=GetField (nrBazy1, "miejscowosc") + ";" ulica=GetField (nrBazy1, "ulica") + ";" dom=GetField (nrBazy1, "dom") + ";" lokal=GetField (nrBazy1, "lokal") + ";" kodpocz=GetField (nrBazy1, "kodpocz") + ";" nip=GetField (nrBazy1, "nip") + ";"
// Print # Nr_pliku; id Print # Nr_pliku; znacznik Print # Nr_pliku; kod Print # Nr_pliku; nazwa Print # Nr_pliku; miejscowosc Print # Nr_pliku; ulica Print # Nr_pliku; dom Print # Nr_pliku; lokal Print # Nr_pliku; kodpocz Print # Nr_pliku; nip Print # Nr_pliku; LF NEXT Licznik
Close Nr_pliku
|
2013-01-28, 15:43 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Próbowałem użyć typu IORec oraz procedur ExportXX (ExportKH), jednak nie wiem jak tego użyć tak, żeby działało. Procedura wykonuje się bez zwrócenia jakiegokolwiek komunikatu o błędzie lub sukcesie...
|
2013-01-28, 15:45 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
Re: Eksport danych do txt lub połączenie ODBC
Cytuj: Nie wiem na razie w jaki sposób zidentyfikować rekordy zawierające dane kontrahentów. id >65535 albo tez rozne fajne pola np typi :)
|
2013-01-28, 15:47 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Dzięki serdeczne za szybką odpowiedź. Dodałem do zwrócenia kolumny id,typ,rodzaj (pierwsze 3 kolumny), dodałem warunek na id=65535 i otrzymałem coś takiego:
-1;99;90;0;Odbiorcy zagraniczni;; -1;103;6000;0;DD;Dariusz Dejmek; -1;0;90;68;Ulrich von J und Sohn;Ulrich von J und Sohn; -1;0;90;0;Herr Flueck;Herr Flueck; -1;0;3100;0;TP SA;TP SA; -1;0;3100;0;MATRIX;MATRIX.PL SA; -1;0;3100;0;BIZNESPARTNER;BIZNESPARTNER.PL SA; -1;0;3100;0;Nowak Jan;Nowak Jan; -1;106;470;65;Kowalska Anna;Kowalska Anna; -1;106;470;65;Zawadzki;Zawadzki Artur; -1;106;471;67;Bolkowski;Bolkowski Zdzisław; -1;99;470;0;Pracownicy etatowi;; -1;99;471;0;Pracownicy na zlecenie i o dzieło;; -1;99;472;65;Urzędy Skarbowe;; -1;99;473;67;Urzędy Gminy;; -1;99;474;66;Zakłady Ubezpieczeń Społecznych;; -1;107;473;66;ZUS Warszawa;Zakład Ubezpieczeń Społecznych Inspektorat Warszawa Wola; -1;107;473;67;Urząd Skarbowy Warszawa;Urząd Skarbowy Warszawa - Wola; -1;107;473;67;Urząd m. st. Warszawa - Wola;Urząd Miasta Stołecznego Warszawy Dzielnica Wola; -1;0;3100;0;SAGE SYMFONIA;SAGE SYMFONIA Sp. z o.o.;
Jak widzisz nadal są dane wszystkiego co popadnie. Nie mogę tego na razie zrozumieć. Przecież Symfonia w jakiś magiczny sposób identyfikuje te wiersze, więc powinna być kolumna z jakąś flagą...
Aha warunek id>65535 nie zwrócił nic :(
|
2013-01-28, 16:06 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
Re: Eksport danych do txt lub połączenie ODBC
tam w kodzie jakoś dziwnie (bezsensownie) używasz setkeysegment stad i id dostajesz jakies -1 a nie poprawnie kolejne numerki rekordow
|
2013-01-28, 16:51 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Czy wiesz może jak sprawdzić jakie pola ma dana baza ?
Co do SetKeySeg szczerze mówiąc robiłem to na wyczucie przerabiając przykłady...Czy jesteś w stanie mi powiedzieć jak powinienem zmodyfikować procedurę? Największe wątpliwości mam co do właśnie SetKeySeg oraz w GetRec parametru "NX"...
|
2013-01-28, 16:54 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
Re: Eksport danych do txt lub połączenie ODBC
W dokumentacji :)
przejrzyj jeszcze raz przykłady - setkeysegment wogole nie działa tak jak sobie wymyśliłeś - on służy do wyboru pola z indeksu (jeśli indeks jest wielopolowy) (a nie do skakania po rekordach - jeżeli używasz pola id które jest w pierwszej pozycji każdego indeksu to wogole możesz pominąć setkeysegment
a nx działa tak jak każdy nx - ustawia się na kolejny rekord w tabeli zgodnie z użytym indeksem
|
2013-01-28, 17:03 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Chcecie się nade mną poznęcać... :) Nakłanianie do nauki/poznawania tej "bazy" + czytanie dokumentacji ambasica jest znęcaniem się i powinno być karane :)
Proszę Was o odrobinę dobrej woli i pomoc w tym przykładzie a z następnymi na pewno sobie już dam radę sam.
|
2013-01-28, 17:13 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
Re: Eksport danych do txt lub połączenie ODBC
Sam jesteś masochista (a my ci tylko pomagamy sie w tym realizowac) skoro wybrałeś eksportowanie przez amabsic nie znając struktury bazy itp :) Moze prościej - spróbuj jednak przez ODBC
|
2013-01-28, 17:32 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Próbowałem ... AmBasic jest ostatnią rzeczą, za którą chciałem się zabierać. Tak jak pisałem w pierwszym poście, zainstalowałem sterowniki, uzupełniłem wszystkie atrybuty do utworzenia DSN w Win7, jednak bez efektu. A jakiejkolwiek pomocy w necie ze świecą szukać.
|
2013-01-28, 17:45 |
|
|
bzyq26
Rejestracja: 2013-01-26, 18:38 Posty: 16
|
Re: Eksport danych do txt lub połączenie ODBC
Zresztą na szukaniu struktury bazy też można stracić cały dzień i się nie znajdzie... Pozostała metoda prób i błędów, która i tak częściowo się sprawdziła, chociaż nie należy do najbardziej efektywnych. Ale cóż zrobić...
|
2013-01-28, 17:47 |
|
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 21 gości |
|
Nie możesz tworzyć nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników
|
|
|
|