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

    [C#] Dove salvare il codice SQL delle query nel progetto

    Ciao a tutti!

    volevo chiedere come gestire le query sql nei progetti .net.
    Abitualmente ho un file setting oppure config dove salvo il nome della query ed il codice sql
    ES. query_nazioni = "SELECT id,nazione FROM nazioni WHERE codice = '@01' and stato = 0"

    Nel codice recupero questa query e dopo aver sostituito i codici speciali con i valori la richiamo tramite una classe che interagisce con il DB.

    Ora ho il problema di gestire numerosi progetti dove ho in comune molte query. Come posso e dove posso salvare il codice SQL per manutenerlo e gestirlo in modo veloce?

    C'è qualche altra soluzione oltre a quella banale che utilizzo ?

  2. #2

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    che db usi?
    MYSQL o MSSQL

  4. #4
    con MSSQL potresti usare le stored procedures, e quindi evitare il giro del reperimento query/sostituzione valori/esecuzione query. Si può anche con MySql, ma dipende dalla versione

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    con MSSQL potresti usare le stored procedures, e quindi evitare il giro del reperimento query/sostituzione valori/esecuzione query. Si può anche con MySql, ma dipende dalla versione
    Posso anche con mysql. non preferisco questa strada perchè creare una stored per ogni tipo di operazione (select,delete,insert etc) sulle numerose tabelle mi porta via un bel pò di tempo.
    con query ad hoc mi risulta più veloce, inoltre ho gratis la compatibilità con i due DB.
    usando le stored, dovrei scriverle per mysql e mssql

  6. #6
    ci sono dei generatori di SP CRUD che fanno il lavoro per te, e le SP per le operazioni base sono veramente molto simili. devi fare un bilancio tra le performance delle sp (soprattutto con MSSQL) e la tua comodità

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Oltre alle risposte che ti sono già state fornite, se vuoi memorizzare il codice delle query, io andrei a inserirli in un file di risorse (Resource File), ossia un file con estensione ".resx".

    Magari aggiungi al tuo progetto una cartella con nome Resources, se non è già presente; al suo interno, crea una cartella Files dove vai a memorizzare i tuoi script SQL, ad esempio "SqlInsertIntoNomeTabella.sql".

    Sempre nella cartella Resources, aggiungi un file di risorse (.resx), aprilo in Visual Studio e nella sezione "Files" vai ad aggiungere i file SQL che hai creato e che mantieni nel progetto assieme al resto.

    Visual Studio provvederà inoltre a crearti delle costanti (es. "NomeFileRisorse.SqlInsertIntoNomeTabella") che ti restituiscono direttamente il testo contenuto nel file collegato come risorsa.

    Quando compili il progetto, tali script - trattandosi appunto di risorse - vengono compilate e inserite all'interno dell'eseguibile.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Grazie Marco per il tuo suggerimento. Io di solito buttavo tutto nel file setting (un pò simile alla tua proposta)
    a questo, vorrei aggiungere anche un'altra complicazione. Tra le mie tante pippe mentali, volevo prevedere la personalizzazione delle griglie per ogni utente: cioè ogni utente può decidere quali colonne visualizzare.
    Aggiungo che per ogni datagridview, vorrei creare una configurazione in modo tale da settare le colonne editabili,esportabili etc.
    ho pensato di aggiungere queste configurazioni nel db in una tabella dove per ogni datagridview presente nelle form vado a specificare il tutto.
    Considerando che le query le posiziono in una libreria di classi oppure in un file esterno, tutte le info delle colonne di queste query devo recuperarle ogni volta ?
    Oppure, mi conviene buttare tutto nel DB, quindi anche le query così ho un punto unico dove intervenire? Con il contro di andare sempre a leggere tutto da DB ogni volta.
    Vorrei rendere, quanto più possibile, la configurazione delle griglie autonoma e senza intervenire nel codice ogni volta.

    Spero di essere stato abbastanza chiaro

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.