Pokaż wyniki od 1 do 4 z 4
  1. #1
    Obserwator
    Dołączył
    January 08
    Postów
    1
    Siła Reputacji
    0


    Twoja ocena: Yes No

    skrypt analizujacy bledy sql

    Czy ktoś wie jak napisać skrypt, który sprawdzałby bęłdy w składni zapytań SQL? P.S. Aplikacja ma być na za zadzie samouczka. Z góry dziękuje za pomoc.

  2. #2
    Zaawansowany uczestnik
    Dołączył
    August 05
    Postów
    474
    Siła Reputacji
    0


    Twoja ocena: Yes No

    Tak, to bardzo proste i zajmie Ci godzinę (wliczając 45 minut lunch)
    1.Przygotuj okienko do wprowadzenia przykładowego zapytania
    2.Przygotuj przycisk i nazwij go OK
    3.Po kliknięciu OK wyślij tekst z okienka do bazy
    4.Wychwyć błąd (konstrukcja try {} catch {} finally{}) i pokaż userowi

    Jest jeszcze druga metoda: napisać taki skrypt poważnie. Tej nie polecam, bo ani Ty, ani ja, ani nikt w ogóle, nie zna wszystkich konstrukcji T-SQL a pisanie skryptu zajmie Ci i tak ponad 3 lata.

    To jest poprawne:

    SELECT Skrypciki.DobryPomysl, Skrypciki.ZłyPomysl, SUM(ForumDI.IleTego) AS ForumDIPerSkrypcik
    FROM Skrypciki LEFT JOIN ForumDI
    ON Skrypciki.SkrypcikID = ForumDI.SkrypcikID
    GROUP BY Skrypciki.DobryPomysl, Skrypciki.ZłyPomysl

    Ale gdybym miał teraz robić skrypt, który będzie analizował TYLKO joiny, sprzedałbym kompa i otworzył kwiaciarnię. A SQL to nie tylko JOINY. To jakieś 300 razy więcej konstrukcji.
    A więc, przyjacielu pełen zapału, choć życze Ci powodzenia, za bardzo w nie nie wierzę

    Zwłaszcza, że tego http://sol.gfxile.net/zip/galaxql_20.zip raczej nie pobijesz, więc ściągaj i się ucz, sam się na tym szkoliłem i patrz, jakie mam fajne zdrowe paznokcie Pod koniec zrozumiesz, co chciałeś zrobić i jak zbłądziłeś

  3. #3
    Obserwator
    Dołączył
    June 05
    Postów
    589
    Siła Reputacji
    0


    Twoja ocena: Yes No

    Ale gdybym miał teraz robić skrypt, który będzie analizował TYLKO joiny
    Dlaczego? Zależy ile by płacili. Tutaj trzebabyłoby m.in. specjalistę od teorii języków i automatów.

    Budowa takiego kompilatora/parsera z rozszerzonymi funkcjami kontroli poprawności składni to nie jest prosta sprawa, ale na pewno wykonalna w rozsądnym czasie przez odpowiednio wykwalifikowany zespół.

    Jako, że na czele musiałby być człowiek bardzo wykwalifikowany i znający się na tym obstawiam, że 100pln/h pewnie by nie wystarczyło. Z drugiej strony reszta zespołu to mogliby być zwykli klepacze kodu i dla nich byłoby mniej

    Więc jak masz ojca milionera to nic tylko uderzyć do dobrego headhuntera, zebrać zespół i ich zagonić do pisania

    Ile byś ty to pisał? Zależy. 5 lat infa na jakiejś _dobrej_ uczelni. Później gdybyś się akurat tym interesował mógłbyś się zająć pisaniem. Jest na przykład taki miły przedmiot jak "podstawy kompilatorów" Tam cię uczą o alfabetach, deterministycznych maszynach stanów, redukcji, odpowiednich przekształceniach, budowaniu drzew z tych przekształceń, obróbce tych drzew tak i wielu innych ciekawych rzeczach.

    Coś co liczy np działania +/- i obsługuje nawiasy można napisać już w tydzień. Myśmy to robili przez pół roku, ale jeśli byś już umiał i siedział 8h dziennie dałbyś rady

    Parser SQL. Dla ciebie stawiam 5-8 lat jeśli zaczynasz właśnie studia informatyczne przy założeniu, że pozaliczasz wszystkie sesje w terminie. 5 jeśli to obronisz na pracę magisterską i będziesz zapieprzać po 12h dziennie. w sumie 5-8 jeśli będziesz to pisał po pracy. Taki system opisujący błędy, ew. poprawiający je lub dający sugestie jak je poprawić to świetny temat na pracę inż/mgr. Niestety tutaj jest też problem bo po obronie praca staje się własnością uczelni i nawet jak ją za darmo wyślesz kumplom to popełniasz przestępstwo (taki urok praw autorskich).

    @Osiaq: pisze się skrypty który analizuje poszczególne termy języka a nie tylko np. joiny, no chyba że chcesz to pisać tak jak jest zrobiony pseudoparser do phpbb czyli na regexach (spieprzyli to strasznie i na parsowaniu tagów w stylu [img='] się kończą możliwości czegoś takiego)

  4. #4
    Zaawansowany uczestnik
    Dołączył
    August 05
    Postów
    474
    Siła Reputacji
    0


    Twoja ocena: Yes No

    Ale ja o niczym innym nie pisz, jak wanie o pseudoparserze, dlatego zacisnem to do 3 lat, pozostaje jeszcze jeden problem: czy to ma by peny t-sql czy raczej jedna z jego implementacji dla ktrej konkretnej bazy. Z PW kolegi wynika, e ma to by MySQL, co przynajmniej czciowo upraszcza robot na dzie dzisiejszy. Tak czy inaczej: zanim skoczy - wyjdzie nowy MySQL z ekstra ficzerami, ktrych parser nie uwzgldni
    Poza tym zauwa, e chopak chce to robi sam.

    Ja widz to mniej wicej tak:

    Jedno okienko, jeden batonik OK. Wpisujesz zapytanie np: "Select * from tabelka"

    i obsuga bdw:
    syntax error - echo("ze query");
    jeeli nie ma tabeli 'tabelka' - za tabele 'tabelka'
    itd itp.
    to najprostsze rozwiazanie, wykorzystanie gotowego parsera MyQSL

    I takie co mgbym napisa. Ale nie napisz, bo MySQL jest mi kulturowo i religijnie obcy

Informacje o temacie

Users Browsing this Thread

Aktualnie 1 użytkownik(ów) przegląda ten temat. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. PhpBB jako skrypt serwisu ogłoszeniowego?
    By Ryb in forum IT, WEBTECHNOLOGIE i PROGRAMOWANIE
    Odpowiedzi: 6
    Ostatni post / autor: 24-10-18, 16:37
  2. [php] Skrypt przetwarzający dane z formularza
    By pepe67 in forum HTML, XHTML, CSS, JS, AJAX
    Odpowiedzi: 0
    Ostatni post / autor: 28-09-07, 18:06
  3. potrzebuę skrypt do monitorowaia strony
    By lisman in forum HTML, XHTML, CSS, JS, AJAX
    Odpowiedzi: 1
    Ostatni post / autor: 06-07-07, 22:14
  4. jaki skrypt polecacie?
    By SpecMen in forum HTML, XHTML, CSS, JS, AJAX
    Odpowiedzi: 3
    Ostatni post / autor: 24-01-07, 11:49
  5. Skrypt sprawdzianów
    By issa in forum HTML, XHTML, CSS, JS, AJAX
    Odpowiedzi: 2
    Ostatni post / autor: 26-12-06, 10:09

Zakładki

Zakładki

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  

Jak czytać DI?

Powered by  
ATMAN EcoSerwer