Michał Chyrowy

Michał Chyrowy Księgowość

Temat: Funkcje serwerowe - gdzie się je tworzy?

Witam,
chciałem się zapytać gdzie się tworzy funkcje serwerowe?
Czy tworzy się je bezpośrednio w bazie danych, programie CDN Optima, czy jeszcze w innym miejscu?
Z góry dziękuję za wyjaśnienie.
Jakub Wołoszyn

Jakub Wołoszyn Wdrażam i programuję
MS Dynamics NAV w
środowisku
międzyn...

Temat: Funkcje serwerowe - gdzie się je tworzy?

Funkcje serwerowe to funkcje na serwerze SQL.
Są funkcje wbudowane np. SUM(), AVG(). Są też funkcje definiowalne przez użytkownika na poziomie bazy danych.
W Management Studio dostępne są pod konkretną bazą w zakładce Programmability > Functions.
Tworzysz funkcje poprzez polecenie CREATE.
Aby użyć swoich funkcji w Optimie trzeba pamiętać o przyznaniu uprawnień do tych funkcji odpowiedniemu użytkownikowi serwera SQL (polecenie GRANT).
Michał Chyrowy

Michał Chyrowy Księgowość

Temat: Funkcje serwerowe - gdzie się je tworzy?

Jakub W.:
Funkcje serwerowe to funkcje na serwerze SQL.
Są funkcje wbudowane np. SUM(), AVG(). Są też funkcje definiowalne przez użytkownika na poziomie bazy danych.
W Management Studio dostępne są pod konkretną bazą w zakładce Programmability > Functions.
Tworzysz funkcje poprzez polecenie CREATE.
A czy jest możliwość stworzenia tej funkcji w programie CDN Optima przez: Narzędzia -> Serwer bazy danych -> wykonywanie zapytań SQL -> i w zapytaniu napisać zapytanie CREATE (...)? Czy to umieści tą funkcję w bazie danych?
Niestety w pracy chyba nie mamy SQL Management-u a nawet jeśli to boję się, że szef będzie się bał udostępnić mi dostęp...
Aby użyć swoich funkcji w Optimie trzeba pamiętać o przyznaniu uprawnień do tych funkcji odpowiedniemu użytkownikowi serwera SQL (polecenie GRANT).
A czy to również da się zrobić poprzez program CDN Optima? Czy da się przyznać uprawnienia wszystkim użytkownikom jednym zapytaniem?
Czy jeśli funkcja ma być wykorzystywana w schemacie księgowym, z którego będą wszyscy korzystać to rozumiem, że trzeba nadać uprawnienia wszystkim użytkownikom?
Czy da się zrobić funkcję "publiczną" taką, by była dostępna dla wszystkich - bez konieczności każdorazowego nadawania uprawnień przy dodawaniu np. użytkowników?

Czy da się taką funkcję stworzyć wspólną dla wszystkich baz danych w CDN? Tzn. w biurze rachunkowym dla wszystkich firm? Czy trzeba ładować tą samą funkcję do każdej firmy?

Z góry dziękuję za pomoc. Dopiero badam temat i chcę ustalić czy jest sens przeznaczać czas na te funkcje czy nie ;-). Już widzę, że sporo z nimi kłopotów ;-)
Michał Chyrowy

Michał Chyrowy Księgowość

Temat: Funkcje serwerowe - gdzie się je tworzy?

EDIT:
Ok, sprawdziłem i można dodawać funkcje z poziomu CDN Optimy ;-) -> Ufff.
Wszystko działa jak należy ;-) - przynajmniej u mnie w domu :P. Nie wiem jak w sytuacji ograniczonych uprawnień - zobaczy się w poniedziałek.Ten post został edytowany przez Autora dnia 25.04.15 o godzinie 23:45
Jakub Wołoszyn

Jakub Wołoszyn Wdrażam i programuję
MS Dynamics NAV w
środowisku
międzyn...

Temat: Funkcje serwerowe - gdzie się je tworzy?

Jeśli chodzi o uprawnienia to będzie działało również w pracy.
To jest szerszy temat - kwestia uprawnień w bazie danych jest czym innym od uprawnień w samej Optimie.
Dodając funkcję z poziomu Optimy Twój użytkownik w bazie danych (CDNOperator) jest z automatu uprawniony do funkcji/obiektu który stworzył.
Dodając funkcję bezpośrednio na serwerze SQL w praktyce robi się to przez użytkownika SQLowego, który ma najwyższe uprawnienia (sa - system administrator) - stąd konieczność ręcznego nadania uprawnień innemu użytkownikowi (CDNOperator).
Funkcja na 99% jest przypisana tylko do konkretnej bazy firmowej.
Michał Chyrowy

Michał Chyrowy Księgowość

Temat: Funkcje serwerowe - gdzie się je tworzy?

Dzięki wielkie za pomoc.
Czyli podsumowując lepiej dodawać funkcje przez program, bo inaczej trzeba jeszcze kopać się z uprawnieniami ;-).

Co do funkcji to fakt - myślałem, że da się tworzyć funkcje globalne, ale niestety nie ma czegoś takiego w T-SQL.
Zdaje się można utworzyć funkcję w bazie głównej (master) ale nie wiem co na to optima - czy będzie się dało z tego korzystać w schematach...

Na pewno byłoby to wygodne rozwiązanie, bo w innym wypadku trzeba pamiętać o tworzeniu takiej funkcji(ach) w każdej nowej firmie (zakładam, że będzie ona wykorzystywana w każdej firmie).
Do tego trzeba gdzieś przechowywać te funkcje na przyszłość...
A jak człowiek się tym nie zajmuje na co dzień to później trzeba sobie sporo przypominać :-/.
Ehh, same problemy ;-)

Mam jeszcze jedno, mam nadzieję ostatnie pytanie:
Czy orientujesz się czym jest baza konfiguracyjna? W programie jest możliwość pisania zapytań SQL do bazy firmowej i konfiguracyjnej. Firmowa to wiadomo - baza danych firmy. Natomiast nie wiem czym jest baza konfiguracyjna...
Z ciekawości dodałem funkcję do tej bazy konfiguracyjnej, by zobaczyć gdzie się ona pojawi i... nie mogę jej zlokalizować ;-/.
W bazie CDN są bazy danych firm oraz dodatkowo baza danych "System Databases" - myślałem, że tam wyląduje, ale przeszukałem tam wszystkie foldery z funkcjami i nic... Rozpłynęła się :P
Jakub Wołoszyn

Jakub Wołoszyn Wdrażam i programuję
MS Dynamics NAV w
środowisku
międzyn...

Temat: Funkcje serwerowe - gdzie się je tworzy?

Baza konfiguracyjna to baza wspólna dla wszystkich firm.
Nie zawiera danych transakcyjnych tylko część ustawień programu.
Zlokalizujesz ją na serwerze SQL.
Jej nazwa to domyślnie CDN_KNF_Konfiguracja, ale w praktyce często nazwa jest zmieniana ręcznie.
Teoretycznie możesz spróbować stworzyć funkcję w bazie konfiguracyjnej - odwołując się do niej w Optimie musiałbyś w odwołaniu do funkcji zawrzeć nazwę bazy np.
select sum(tre_cena) from CDN_KNF_Konfiguracja.cdn.traelem
W teorii powinno działać. Jeżeli z jakiegoś powodu zmieni się w przyszłości nazwa bazy konfiguracyjnej to w Optimie będzie to potraktowane jako błąd.
Michał Chyrowy

Michał Chyrowy Księgowość

Temat: Funkcje serwerowe - gdzie się je tworzy?

O raju, ale ślepota ze mnie ;-) - rzeczywiście jest taka baza danych ;D. Nie zwróciłem na nią uwagi w gąszczu innych baz ;-P.

Dzięki wielkie za pomoc!!!



Wyślij zaproszenie do