Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [SQL Server]Quali sono le differenze?

    Salve,
    armato di buona volontà, Access e MSDE ho iniziato a fare delle prove di "migrazione"... ok, ho scoperto che i progetti di Access (.adp) sono una bella cosa per avere una sorta di interfaccia grafica su MSDE...

    Scartabellando su questi files .adp ho trovato cose nuove: functions, stored procedures e view

    Bene, c'è qualche anima pia che mi spiega con esempi concreti e con poco linguaggio tecnico in cosa differiscono 'ste tre cosette?

    Grazie :-)
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

  2. #2
    Le funzioni definite dall'utente sono delle routine, cioe' un insieme di comandi che generano un risultato.
    Le viste permettono di presentare un insieme di dati proveniente da tabelle diverse. Questo insieme di dati viene visto dall'esterno come se fosse una normale tabella.
    Le stored procedures sono un insieme di comandi Sql memorizzati sul server. Accettano parametri in entrata e in uscita. Sono molto utili ai programmatori che possono fare riferimento ad esse chiamandole dalle loro applicazioni. In questo modo, tutto il codice sql non e' necessario metterlo nel codice sorgente dell'applicazione ma puo' essere memorizzato appunto in una Stored Procedure. Ad esempio puoi memorizzare una Stored procedure chiamandola sp_GetClienti al cui interno metti un semplice "select * from clienti" oppure ne memorizzi una sp_GetCliente che accetta un parametro ID e che restituisce il record del cliente cercato.
    Saluti a tutti
    Riccardo

  3. #3
    oh, bene, ci inizio a capire di più (e ti ringrazio infinitamente, sei stato molto chiaro)...

    certo, se metto tutte le query nel Database (e non nelle pagine web) poi mi verrà più difficile cambiare sistema di database, giusto? cioè dovrò "replicare" le stesse stored procedures nell'altro database, ammesso e concesso che il database supporti le SP -- insomma, mi verrebbe impossibile passare da SQL Server a MySQL: c'ho azzeccato?

    inoltre, le SP non possono essere modificate "a runtime", ad es. con If...Then, giusto?

    ma d'altronde immagino che le query memorizzate direttamente nel DB siano più preformanti...

    Le funzioni mi sembrano le meno chiare di tutte... cioè, non riesco a vederne l'utilità, avendo già a disposizione viste e SP..
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

  4. #4
    Originariamente inviato da ivanhalen
    certo, se metto tutte le query nel Database (e non nelle pagine web) poi mi verrà più difficile cambiare sistema di database, giusto? cioè dovrò "replicare" le stesse stored procedures nell'altro database, ammesso e concesso che il database supporti le SP -- insomma, mi verrebbe impossibile passare da SQL Server a MySQL: c'ho azzeccato?
    quando usi le sp non pensi di cambiare database. Cmq, anche non usando le sp cambiare db non e' quasi mai semplice a meno che non si utilizzino livelli intermedi tra applicazione e db che astraggono. Per le sp, ogni rdbms usa il suo linguaggio e la sua sintassi quindi oracle ne ha una sqlserver ne ha un'altra.
    inoltre, le SP non possono essere modificate "a runtime", ad es. con If...Then, giusto?
    no, non possono essere "modificate a runtime" anche se non ho capito bene cosa intendi. Nel tuo codice metterai If ciccio = true then chiama sp_Ciccio else chiama sp_Lello
    ma d'altronde immagino che le query memorizzate direttamente nel DB siano più preformanti...
    i motivi per usarle sono diversi. Uno e' appunto le performance visto che sqlserver prepara le sp utilizzando anche un piano di esecuzione per velocizzare il tutto e in piu' non c'e' trasmissione di lunghe query testuali tra applicazione e db. Altri motivi possono essere quello di spostare l'sql nella sua sede piu' propria in modo da gestirlo meglio. Un altro motivo e' quello della sicurezza. Se infatti ricorriamo alle sp per ogni necessita', possiamo arrivare a dare all'utente impersonato dalla nostra applicazione web in sqlserver solo i diritti di esecuzione delle sp cosi' nel peggiore dei casi se la connection string cadesse in cattive mani le possibilita' di danneggiare il db e il server sarebbero ben piu' limitate.
    Saluti a tutti
    Riccardo

  5. #5
    ok, mi è chiaro...
    per la "modifica a runtime" mi riferisco ad un esempio come questo:
    codice:
    If request("pippo") = "1" Then
    codaSQL = " AND PIPPO = 1"
    Else
    codaSQL = ""
    End If
    ...
    ...
    strSQL = "SELECT * FROM MyTable WHERE TOPOLINO = 0" & codaSQL
    ...
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.