SQL - Vytvoření VIEW z Aplikace   zodpovězená otázka

SQL, Databáze

Dobrý den,

Potřeboval bych poradit jak mám poslat na SQL přikaz CREATE VIEW pro vytvoření VIEW dle parametru, které si uživatel zvolí. Jedná se o to, že potřebuji kritéria ve VIEW měnit podle toho jak uživatel pomoci aplikace nadefinuje dotaz a tyto data potřebuji potom dalé zpracovávat v OFFICE 2007. Jedno VIEW na serveru a předávat mu paramentry jsem "zavrhl", protože pokud s aplikací pracuje třeba 5 uživatelů, tak potom nelze zajistit, aby si nemazali data. Tak chci udělat kód a z aplikace vytvořím VIEW podle podmínek uživatele. VIEW bude mit pokaždé jiný název.

Moc děkuji za podmět.

Petr

P.S. Tento server je opravdu moc super. hodně mě pomohl při přechodu VB6 -> VS08

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No, nevím, jestli je tohle zrovna dobrý nápad, za běhu by se v databázi už neměly vytvářet tabulky, pohledy ani nic podobného. Rozhodně by bylo lepší použít k tomuto účelu nějakou uloženou proceduru nebo serverovou funkci, které ty parametry pokaždé předáte a ona vám vrátí příslušná data.

Ale jinak by teoreticky neměl být problém připojit se k serveru a poslat mu příkaz CREATE VIEW název AS dotaz. Jenom dejte pozor, aby uživatel, pod kterým se do DB připojujete, měl právo na spuštění CREATE VIEW. To je samo o sobě dost nebezpečné a proto bych vytváření pohledů silně nedoporučoval.

Zkuste nějak nastínit, jaké parametry potřebujete měnit, určitě to půjde udělat jinak než dynamicky vytvářet objekty v databázi.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Celá úloha je následující. Ve firmě máme vytvořenou aplikaci pomoci, které u vyrobních strojů zapisují data ( Kolik kusu vyrobil za směnu). Potom je asi 5 různých uživatelů, kteří potřebují zpracovávat tyto data pro vedení ( pokaždé jiné množství dat). Z tohoto filtru vytvařejí grafy a různé přehledy (EXCEL). Může vzniknout situace, že ve stejném čase budou mít potřebu získat 2 nebo 3 uživatele různé pohledy na tyto data. Jejich požadavky mohou být taky odlišné a navíc je potřeba, aby tyto data bylo možné dále zpracovat v EXCELu 2007. ( Propojeni VIEW s Excelovou tabulkou. )

Potřebuji měnit hodnotu datum_zapisu_od a datum_zapis_do.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den, řešil jsem podobný problém. Uživatelé zapisují do databáze a vedoucí potřebují mít online přehled pro vytváření statistik a garfů. Řešil jsem to tak že jsem si v excelu udělal ve VBA spojení s databází a data načítal přímo do listu v excelu. Nepoužíval jsem žádný view ale přímo jsem si napsal dotaz, kde jsem do where dosazoval třeba datum které uživatel napsal do předem určené buňky, popřípadě ještě další hodnoty dle potřeby. Pokud data načtete rovnou do excelu můžete jednoduše zautomatizovat tvoření a aktualizaci grafů, kontingenčních tabulek atd. což se bude na 100% vedení líbit:)

Můj názor je ten že vytvoření a pak vymazání viewu je v tomto případě zbytečný krok. Jednodušší je načíst data přímo.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Přesně tak, na vytváření VIEW se vykašlete, zaděláváte si tím jen na problémy. Pokud to nutně potřebujete, spíš zkuste na databázovém serveru vytvořit uloženou proceduru, které nastavíte parametry, a ona bude vracet výsledek. Ale jinak by Excel měl vzít přímo i SELECT příkaz.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkusim to udělat přes Excel. Výsledek pošlu sem.

Petr

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback