konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Mamy bazę danych MS SQL 2000 o zmieniających się nazwach baz danych dla jednej doby

DB_ALG_201404032301
DB_ALG_201404042302
DB_ALG_201404052300
...

Potrzebuję zbudować automat dla exportu danych do pliku XLS i wszystko jest ok ale mam bazę danych która
zmienia nazwę każdego dnia. Czym to potraktować ? Procedura, czy może maska której nie umiem zastosować w kodzie BCP lub komenda SQL o której nie pamiętam .. Proszę o pomoc ..
Robert Chmielewski

Robert Chmielewski Senior SQL
Developer, Sagra
Technology sp. z
o.o.

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

W MSSQL masz coś takiego jak DTSy
Budujesz sobie z klocków model exportu

Możesz zbudować sobie eksport DTSem
i jako parametr DTSa użyć nazwę bazy danych

Takiego DTSa można wywołać z Joba SQLowego
lub komendą z lini komend wywoływaną np przez Shedulera systemowego

Ale więcej to musisz doczytać w dokumentacji
bo dawno nie miałem styczności z wersją 2000Ten post został edytowany przez Autora dnia 29.04.14 o godzinie 20:20
Robert Chmielewski

Robert Chmielewski Senior SQL
Developer, Sagra
Technology sp. z
o.o.

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Nie pamiętałem jak rozwinąć skrót - już znalazłem
DTS = Data Transformation Services
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Widzę że nazwa jest dość standardowa. Dodaj string + datę z dnia oraz wyciąg maxa z nazw dla 4-rech ostatnich cyfr.
DB_ALG_ | 20140405 | 2300

select t.table_name from all_tables t

listę baz uzyskasz po przez
Reszta to warunki.

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Panowie DTS jest ok ale musze podac full nazwe bazy, ktora sie zmienia i nigdy nie przypomina dokladnie poprzedniej, nie zmienia sie schematycznie ale losowo. Taka jest intencja autora software aby utrudnic
wykorzystanie bazy do celow analitycznych. To jest baza duzego systemu produkcyjnego.

Dodam ponadto ze w nazwie ostatnie cyfry sa jeszcze bardziej zagmatwane, bo zawieraja sekundy z czasu utworzenia bazy (kazdego dnia pomiedzy 21 a 23 o roznych sekundach) - zapomnialem tego dodac do przykladu. Muszę więc maskować te ostatnie cyfry/sekundy podczas pobierania.

Mam swoje rozwiazanie ale nie wiem jak to bedzie w MS SQL, mianowicie:

pobieram nazwe baz i wybieram baze wg klucza mnie interesujacego (now wlasnie jak),
nastepnie usuwam z nazwy ostatnie 8 znaków i podstawiam pod alias do bazy.
To bedzie powiedzmy view w bazie wspierajacej import, bedacej posrednikiem dla bcp.
Poniewaz nie powinienem ingerowac w struktore bazy danych uzywam bcp i odwoluje sie
do mojego view i pobiera podane przez niego tabele z danymi do pliku xls.

Czy sa inne propozycje ?
Robert Chmielewski

Robert Chmielewski Senior SQL
Developer, Sagra
Technology sp. z
o.o.

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

USE master
SELECT name FROM sys.databases WHERE name like 'DB_ALG_20140403%'

----- przykład na wyciągnięcie nazwy wczorajszej lub wczorajszych
SELECT name FROM sys.databases
WHERE name like 'DB_ALG_'+REPLACE(convert(nvarchar(10),dateadd(day,-1,getdate()),120),'-','')+'%'Ten post został edytowany przez Autora dnia 05.05.14 o godzinie 19:50

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

zamiast replace na ciętej do 10 znaków konwersji w stylu 120 można użyć od razu stylu 112
Robert Chmielewski

Robert Chmielewski Senior SQL
Developer, Sagra
Technology sp. z
o.o.

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

No faktycznie zapomniałem o 112

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Dziękuje za pomoc. Jak zakończę moje boje z Siemens WinCC na produkcji to podziele sie moim skryptem.

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Rafal T.:
Dziękuje za pomoc. Jak zakończę moje boje z Siemens WinCC na produkcji to podziele sie moim skryptem.

O to kolega ma pewnie to samo co znajomi, oni też mają nową bazę codziennie i WinCC, branża energetyczna, napisz prosty program w PHP na kompa wrzuć XAMPP-a, weź bibliotekę phpoffice export , zapuść cron-a i tyle plus możesz zbudować apkę , żeby sobie generowali sami na dany dzień, ostatnio to naprawiałem, nie pamiętam już nazwy biblioteki, ale po weekendzie mogę ci zapodać jak chcesz, jest darmowa.Ten post został edytowany przez Autora dnia 02.05.14 o godzinie 16:37

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Wielce interesujace - podesli mi, moze przeanalizuje jak to pracuje i moze cos podobnego wykreuje. Niestety mam wszystko wirtualizowane, takie niestandardowe rozwiazazania nie maja akceptacji na poziomie korporacji - nieutoryzowany proces na maszynie witualnej. Mam wiec budowac rozwiazania na bazie standardow, a w tym wypadku MS SQL 2000 i wyciskam wszystko co sie da ;-) Rozwiazania takie jak piszesz obsluguja pamiec w sposob niestandarowy i moga niekorzystnie wplywac na prace pozostalych systemow, tutaj jestem ostrozny.

Sa programy ktore w locie przechwytuja komunikacje pomiedzy PLC czy innymi sterownikami a systemem WinCC z synoptyka, kosztuja 50 000 zl i daje prawie wszystkie narzedzia analityczne dla
procesu zarzadzania poprzez TPM. Teraz robie atrape bo za rok migracja do new version, obecnie potrzebuje rejestru alertow w Excelu do analizy dla TPM.

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Rafal T.:
Wielce interesujace - podesli mi, moze przeanalizuje jak to pracuje i moze cos podobnego wykreuje. Niestety mam wszystko wirtualizowane, takie niestandardowe rozwiazazania nie maja akceptacji na poziomie korporacji - nieutoryzowany proces na maszynie witualnej. Mam wiec budowac rozwiazania na bazie standardow, a w tym wypadku MS SQL 2000 i wyciskam wszystko co sie da ;-) Rozwiazania takie jak piszesz obsluguja pamiec w sposob niestandarowy i moga niekorzystnie wplywac na prace pozostalych systemow, tutaj jestem ostrozny.
czytam i płaczę
jakim cudem PHP może mieć niestandardowy dostęp do pmięci?
jeżeli chcesz mieć wynik w pliku excela a nie csv to zrobisz to DTS-em albo jakimś niestandardowym rozwiązaniem - wybór należny do Ciebie
Sa programy ktore w locie przechwytuja komunikacje pomiedzy PLC czy innymi sterownikami a systemem WinCC z synoptyka, kosztuja 50 000 zl i daje prawie wszystkie narzedzia analityczne dla
procesu zarzadzania poprzez TPM. Teraz robie atrape bo za rok migracja do new version, obecnie potrzebuje rejestru alertow w Excelu do analizy dla TPM.

wyklikaj sobie Accessie i pozbądź się problemów które sam stwarzasz :P
pakiet office jest standardem w korpo

poza tym po co ty kombinujesz? zrzuty do excela? po co? robisz zrzut do odpowiedniej tabeli i robisz odczyt z tej tabeli wprost z Excel-a - mechanizm wbudowany, działa na start z MSSQL-em bez żadnych sterownikówTen post został edytowany przez Autora dnia 03.05.14 o godzinie 13:50

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

W moim rozwiązaniu w żaden sposób nie ingerujesz w dane przechowywane w pamięci, korzystasz z danych zapisanych w bazie danych MSSQL.
Czy musisz przechwytywać dane w locie ? Przecież dane są zapisywane MSSQL, więc tam po nie sięgasz.
Twój problem to dynamicznie zmieniająca się nazwa bazy danych na dany dzień, więc musisz znaleźć klucz do nazwy takiej bazy aby zaadoptować ją w kodzie jako zmienną po częsci nazwy albo po dacie powstania w zależności od kodu programu, oczywiście nie musisz korzystać z PHP ( PHP to standard w korporacjach, sam IIS obsługuje PHP-a, a na temat dostępu do pamięci nie będę dyskutował bo nie bardzo rozumiem co miałeś na myśli, gdzie twój skrót myślowy wydaje się pozbawiony sensu ), możesz skorzystać z dowolnego innego języka który pozwoli ci pobrać i wystawić dane, i tak może być to nawet Access albo LightSwitch, kwestia co musisz konkretnie uzyskać na wyjściu, gdyż nie znamy twojej analizy wymagań.

Mogło by to wyglądać mniej więcej tak:
1. Podłącz do bazy danych X utworzonej w dniu Y (algorytm znajdujący odpowiednią bazę wg. zadanych kryteriów )
2. Pobierz dane z tabeli T ( zapytanie sql)
3. Wyeksportuj dane do pliku XLS ( csv nie wymagany, teraz dużo bibliotek jest aby eskportować bezpośrednio do XLS

PS. Powyższe trzy punkty to tylko skrót myślowy, który powinien być mocno rozbity, itp., ale ja tu nie buduję analiy i programu na tym forum.

A tak przy okazji być może sensowniej byłoby agregować dane z tych codziennych baz do jednej bazy danych a dopiero z tej jednej bazy danych wyciągać dane ?

Kiedyś z kolegą chcieliśmy napisać rozwiązanie program do tego, z pełną analizą ale nie było chętnych i zapotrzebowania, więc odpuściliśmy.
Rafal T.:
Wielce interesujace - podesli mi, moze przeanalizuje jak to pracuje i moze cos podobnego wykreuje. Niestety mam wszystko wirtualizowane, takie niestandardowe rozwiazazania nie maja akceptacji na poziomie korporacji - nieutoryzowany proces na maszynie witualnej. Mam wiec budowac rozwiazania na bazie standardow, a w tym wypadku MS SQL 2000 i wyciskam wszystko co sie da ;-) Rozwiazania takie jak piszesz obsluguja pamiec w sposob niestandarowy i moga niekorzystnie wplywac na prace pozostalych systemow, tutaj jestem ostrozny.

Sa programy ktore w locie przechwytuja komunikacje pomiedzy PLC czy innymi sterownikami a systemem WinCC z synoptyka, kosztuja 50 000 zl i daje prawie wszystkie narzedzia analityczne dla
procesu zarzadzania poprzez TPM. Teraz robie atrape bo za rok migracja do new version, obecnie potrzebuje rejestru alertow w Excelu do analizy dla TPM.Ten post został edytowany przez Autora dnia 03.05.14 o godzinie 20:13

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

No coz nie bede opisywal ograniczen jakie naptykam, ale niestety sa i dlatego tak pokretne rozwiazanie. Ktos kto mial stycznosc z starym WinCC bedzie wiedzial o czym mowie.

p.s.
Moja uwaga odnosnie PHP dotyczy sytuacji pracy na VM, po prostu takich technologi nie stosuje sie w srodowisku dla systemow produkcyjnych na VM, to jest serwer dla uslug webowych i takie ma miec zastosowanie. Polska mania kombinowania nie jest dobra jak chce sie zapewnic skalowalnosc i stabinosc pracy rozwiazania w chmurze gdzie masz 1000 serwerow. Mam tu inny poziom oczekiwan bo mam naprawde duza centralna serwerownie wirtualizujaca wszystko .. Powiem ze to budynek 8 pietrowy z dwoma okretowymi silnikam jako backup energy, tonami APC, dzisiatkami tysiecy serwerow oraz switchy, i drugi identyczny w odleglosci 60 km. Srodowisko pomaga pracowac mi, oraz moim kolegom w US, Chinach itd. Caly komplekt to 7 osob obslugi dla lokacji + centrala zarzadzania z supportem. Tak wiec poziom experymenowania mam maly ;-) Standaryzacja, zmienjszanie ryzyka niestabilnosci itd itd. Lamie wszelkie moje lokalne Polskie rozwiazania. Tylko na poziomie grupy z kolegami z innych kraj. mozemy zbduowac nowy standard wg. wytycznych centralnego dzialu IT. Tak wiec PHP to jako serwer WWW a nie proces dla narzedzi produkcyjnych - taka polityka.

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Ale PHP nie jest serwerem www, to tylko język, mówisz, że masz serwer www, na czym ?
IIS ? To przecież jak mówiłem obsługuje PHP, a jeśli nie PHP to IIS i C# ASP.NET, tam też możesz to zrobić, to tylko języki a nie serwer web. Strona www na istniejącym serwerze www nie powinna mieć znaczenia na środowisko produkcyjne, pominąwszy kwestie zabezpieczeń, przecież używasz jej tylko do wyświetlenia danych. I nie ma to znaczenia czy masz 1000 wirtualek czy 1000 serwerów fizycznych, wirtualki ułatwiają zarządzanie i minimalizują problemy z ilością sprzętu oraz redukują koszty. A propos "Polskiej manii kombinowania" nie ma tu nic kombinowanego, serwer web używany na całym świecie, język PHP albo C# tak samo, pozwolę się tu mocno z tobą nie zgodzić, takie niestandardowe rozwiązania pozwoliły na powstanie gigantów takich jak google, gdzie do dziś są ich tajemnicą. Co do eksperyemntowania powinniście mieć środowisko testowe. A co do polityki , jak widzę macie jakiegoś autokratę tkwiącego na stołku i przy jedynie słusznych rozwiązaniach, choć mogę się mylić. No ale cóż, my may tylko zapewniać narzędzia do wykonania pracy, a czy ją ulepszy innym to już kwestia elastyczności standardów.
Rafal T.:
No coz nie bede opisywal ograniczen jakie naptykam, ale niestety sa i dlatego tak pokretne rozwiazanie. Ktos kto mial stycznosc z starym WinCC bedzie wiedzial o czym mowie.

p.s.
Moja uwaga odnosnie PHP dotyczy sytuacji pracy na VM, po prostu takich technologi nie stosuje sie w srodowisku dla systemow produkcyjnych na VM, to jest serwer dla uslug webowych i takie ma miec zastosowanie. Polska mania kombinowania nie jest dobra jak chce sie zapewnic skalowalnosc i stabinosc pracy rozwiazania w chmurze gdzie masz 1000 serwerow. Mam tu inny poziom oczekiwan bo mam naprawde duza centralna serwerownie wirtualizujaca wszystko .. Powiem ze to budynek 8 pietrowy z dwoma okretowymi silnikam jako backup energy, tonami APC, dzisiatkami tysiecy serwerow oraz switchy, i drugi identyczny w odleglosci 60 km. Srodowisko pomaga pracowac mi, oraz moim kolegom w US, Chinach itd. Caly komplekt to 7 osob obslugi dla lokacji + centrala zarzadzania z supportem. Tak wiec poziom experymenowania mam maly ;-) Standaryzacja, zmienjszanie ryzyka niestabilnosci itd itd. Lamie wszelkie moje lokalne Polskie rozwiazania. Tylko na poziomie grupy z kolegami z innych kraj. mozemy zbduowac nowy standard wg. wytycznych centralnego dzialu IT. Tak wiec PHP to jako serwer WWW a nie proces dla narzedzi produkcyjnych - taka polityka.

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Rafal T.:
No coz nie bede opisywal ograniczen jakie naptykam, ale niestety sa i dlatego tak pokretne rozwiazanie. Ktos kto mial stycznosc z starym WinCC bedzie wiedzial o czym mowie.

ale w czym tkwi problem?
DTS i BCP to składniki MSSQL-a - za mało korporacyjne? -> paczki DTS można odpalić jako Job Server Agenta

jeżeli nie potrafisz to zleć komuś kto potrafi
p.s.
Moja uwaga odnosnie PHP dotyczy sytuacji pracy na VM, po prostu takich technologi nie stosuje sie w srodowisku dla systemow produkcyjnych na VM, to jest serwer dla uslug webowych i takie ma miec zastosowanie. Polska mania kombinowania nie jest dobra jak chce sie zapewnic skalowalnosc i stabinosc pracy rozwiazania w chmurze gdzie masz 1000 serwerow. Mam tu inny poziom oczekiwan bo mam naprawde duza centralna serwerownie wirtualizujaca wszystko .. Powiem ze to budynek 8 pietrowy z dwoma okretowymi silnikam jako backup energy, tonami APC, dzisiatkami tysiecy serwerow oraz switchy, i drugi identyczny w odleglosci 60 km. Srodowisko pomaga pracowac mi, oraz moim kolegom w US, Chinach itd. Caly komplekt to 7 osob obslugi dla lokacji + centrala zarzadzania z supportem. Tak wiec poziom experymenowania mam maly ;-) Standaryzacja, zmienjszanie ryzyka niestabilnosci itd itd. Lamie wszelkie moje lokalne Polskie rozwiazania. Tylko na poziomie grupy z kolegami z innych kraj. mozemy zbduowac nowy standard wg. wytycznych centralnego dzialu IT. Tak wiec PHP to jako serwer WWW a nie proces dla narzedzi produkcyjnych - taka polityka.

to zrób to w VBS standardowym języku administratorów systemów Windowsowych
albo w pliku cmd lub bat również standardowym narzędziu administratorów Windows

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Panie Przemysławie, nie piszemy komuś insynuacji w stylu jeśli "nie umiesz", sądząc po stanowisku Pana Rafała to on ma od tego zespół ludzi i jego zadaniem chyba nie jest zabawa z VBS tylko znalezienie odpowiedniego rozwiązania bazując na odp. które otrzyma. Nie znamy niuansów jego środowiska, mamy tylko ogólne pojęcie. Aczkolwiek Pana rozwiązania nie są złe tylko mogą napotykać problemy natury korporacyjnej.
Przemysław R.:
Rafal T.:
No coz nie bede opisywal ograniczen jakie naptykam, ale niestety sa i dlatego tak pokretne rozwiazanie. Ktos kto mial stycznosc z starym WinCC bedzie wiedzial o czym mowie.

ale w czym tkwi problem?
DTS i BCP to składniki MSSQL-a - za mało korporacyjne? -> paczki DTS można odpalić jako Job Server Agenta

jeżeli nie potrafisz to zleć komuś kto potrafi
p.s.
Moja uwaga odnosnie PHP dotyczy sytuacji pracy na VM, po prostu takich technologi nie stosuje sie w srodowisku dla systemow produkcyjnych na VM, to jest serwer dla uslug webowych i takie ma miec zastosowanie. Polska mania kombinowania nie jest dobra jak chce sie zapewnic skalowalnosc i stabinosc pracy rozwiazania w chmurze gdzie masz 1000 serwerow. Mam tu inny poziom oczekiwan bo mam naprawde duza centralna serwerownie wirtualizujaca wszystko .. Powiem ze to budynek 8 pietrowy z dwoma okretowymi silnikam jako backup energy, tonami APC, dzisiatkami tysiecy serwerow oraz switchy, i drugi identyczny w odleglosci 60 km. Srodowisko pomaga pracowac mi, oraz moim kolegom w US, Chinach itd. Caly komplekt to 7 osob obslugi dla lokacji + centrala zarzadzania z supportem. Tak wiec poziom experymenowania mam maly ;-) Standaryzacja, zmienjszanie ryzyka niestabilnosci itd itd. Lamie wszelkie moje lokalne Polskie rozwiazania. Tylko na poziomie grupy z kolegami z innych kraj. mozemy zbduowac nowy standard wg. wytycznych centralnego dzialu IT. Tak wiec PHP to jako serwer WWW a nie proces dla narzedzi produkcyjnych - taka polityka.

to zrób to w VBS standardowym języku administratorów systemów Windowsowych
albo w pliku cmd lub bat również standardowym narzędziu administratorów Windows

konto usunięte

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Krzysztof M.:
Panie Przemysławie, nie piszemy komuś insynuacji w stylu jeśli "nie umiesz", sądząc po stanowisku Pana Rafała to on ma od tego zespół ludzi i jego zadaniem chyba nie jest zabawa z VBS tylko znalezienie odpowiedniego rozwiązania bazując na odp. które otrzyma. Nie znamy niuansów jego środowiska, mamy tylko ogólne pojęcie. Aczkolwiek Pana rozwiązania nie są złe tylko mogą napotykać problemy natury korporacyjnej.

oj tam, oj tam
zauważ że nie wiem o jaki konkretnie format plików chodzi - csv, xls czy xlsx - każdy z tych formatów inaczej będziemy eksportować czyli jest rzucony problem i weź tu człowieku się domyślaj co autor miał na myśli

dochodzą do tego jakieś bajki o pamięci i procesach i zaczynam się zastanawiać czy autor jest świadom tego co pisze i czego chce

ale pewnie się czepiam

jedynym koszernym rozwiązaniem tego problemu jest paczka do eksportu danych zrobiona za pomocą DTS-a i odpalona za pomocą system agenta, ale to chyba nie pasi, każde inne rozwiązanie to druciarstwo

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Marek M.

Marek M. Grant Thornton

Temat: MS SQL i automatyczny export to xls, gdy baza zmienia...

Rafal T.:
Dziękuje za pomoc. Jak zakończę moje boje z Siemens WinCC na produkcji to podziele sie moim skryptem.

Mam pytanie, czy baza danych tworzy się od nowa czy tylko zmienia nazwę? Jeżeli tylko zmienia nazwę to może spróbować wyciągać nazwę według database_id?
SELECT name FROM sys.databases WHERE database_id=X
Pozdrawiam

Następna dyskusja:

Jaka baza - Firebird ? MySQ...




Wyślij zaproszenie do