none
aiuti sql server 2008 RRS feed

  • Domanda

  • Buongiorno sono nuovo alla programmazione e sto creando un software con visual basic in cui devo integrare un database.

    Ho scelto SQL per la gestione del db ma sono bloccato su mio percorso di sviluppo.

    Ho installato sql server 2008 sul mio pc e vorrei creare il db con l'intefaccia grafica management studio ma all'apertura di quest'ultimo mi viene chiesti di connettere al server e anche se digito local non mi trova niente.Mi potete aiutare? Grazie

    venerdì 10 gennaio 2014 12:03

Risposte

  • Scusa, rileggendo ora la risposta mi accordo che è poco chiara...

    Intendo dire che la domanda "pensi che sia utile caricare un dataset con tutte le tabelle all'avvio dell'applicazione" è una domanda "mal posta", nel senso che scegli di porti il problema di una cache solo nel momento in cui capisci di avere dei tempi di performance non accettabili sul server o dei carichi eccessivi sullo stesso.

    Se decidi di fare ottimizzazioni prima di avere l'evidenza di un problema complichi il sistema (rischiando di introdurre bug), senza avere un riscontro in termini di risultati (perché il sistema ha già prestazioni accettabili). Inoltre potrebbero esserci soluzioni più semplici (ad esempio mettendo indici sul db). Il problema è che non sai quale soluzione è la migliore finché non hai strumenti per misurare i risultati.

    Spero di essere stato più comprensibile:D


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    • Contrassegnato come risposta gre88 mercoledì 29 gennaio 2014 21:32
    mercoledì 29 gennaio 2014 19:18

Tutte le risposte

  • Ciao,

    immagino che tu abbia installato la versione express di sql server (quella inclusa in visual studio); se è così - di default - viene installato sqlserver specificando il nome dell'istanza SQLEXPRESS (lo noti tra i servizi windows della tua macchina).

    Per farla breve - e se ho indovinato:) - collegati con localhost\SQLEXPRESS e dovrebbe funzionare.

    Buon lavoro

    Gianluca


    _________________________________
    Gianluca Carucci - Software Engineer & Agile Coach
    http://gianluca.carucci.org

    venerdì 10 gennaio 2014 12:45
  • Ciao Gianluca grazie della risposta,

    Purtroppo non funziona perchè mi dice che ho altri problemi.

    Ora disinstallo tutto e reinstallo, probabilmente smanettando o fatto qualche danno.

    Ti faccio sapere appena ho reinstallato :)

    lunedì 13 gennaio 2014 12:09
  • Ciao,

    ti chiedo però di essere un po' più preciso nella comunicazione dei requisiti. Nella fattispecie ti chiedo:

    • che edizione di SQL Server hai installato (Developer, Express, Enterprise, Standard, ...)?
    • che tipo di autenticazione hai selezionato (Mixed o no)?
    • che cosa hai fatto quando l'installazione ti propone di aggiungere l'utente corrente come amministratore?
    • cosa scegli come tipo di login al momento della connessione?
    • che messaggio ti torna il tentativo di login?

    Prova a rispondere a queste domande.

    ciao!


    Alessandro Alpi SQL Server MVP

    lunedì 13 gennaio 2014 15:24
    Moderatore
  • Ciao Alessandro ho disinstallato tutto e reinstallato e ora funziona visual studio, sql server 2008 e riesco a connettermi con management studio al server locale.

    Ora provo a fare qualche database per la mia applicazione poi vi dirò come è andata.

    Il database lo posso creare direttamente da management studio vero? qualcuno conosce una bella guida o libro su cui imparare le basi di sql???

    grazie a presto

    lunedì 13 gennaio 2014 23:10
  • Ciao,

    certo, il db lo puoi creare da management studio: una volta aperto l'ide e connesso sul server, vai sul nodo del server, seleziona il nodo "Databases" dell'Object Explorer, tasto destro "New Database", specifica il nome - cambia se voi il path del data file e del log file - e conferma.

    Quanto alla guida puoi partire da questa: http://www.html.it/guide/guida-t-sql/ è datata ma quanto meno fa una panoramica completa. In generale, appena hai un minimo di dimestichezza, la documentazione più efficacie è sempre la reference microsoft: http://technet.microsoft.com/it-it/library/dd631854(v=sql.10).aspx.

    Buon lavoro

    Gianluca


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    martedì 14 gennaio 2014 08:02
  • Ciao Gianluca grazie per i link.

    Ho letto il primo (il secondo non va!) e altre guide e mi sono messo alla pratica.

    Su server management studio ho creato un database con una semplice tabella, poi, siccome ho trovato una guida che fa riferimento al famoso Northwind ho scaricato il DB access e importato in SQL sempre con management studio.

    Fin qui tutto ok, poi ho iniziato a scrivere un pò di codice in visual basic per interagire con i DB creati ma mi sono fermato subito perchè non capisco come creare la connection string.

    Vi lascio quel poco che ho scritto così mi dite se va bene.

    Grazie

    Imports System.Data.SqlClient
    
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim Conn As SqlClient.SqlConnection                         'variabile oggetto connessione
            Dim ConnString As String                                    'variabile contenete la stringa di connessione
    
            ConnString= ???                                             'creazione della stringa di connessione
    
            Conn = New SqlClient.SqlConnection()                        'creazione oggetto connessione
    
            Conn.ConnectionString = ConnString                          'inserimento della stringa nell'oggetto connessione
    
            Conn.Open()                                                 'apertura connessione
    
            MessageBox.Show("Connessione aperta", " OpenConnection()")  'messaggio di avvenuta connessione
    
    
        End Sub
    End Class

    giovedì 16 gennaio 2014 19:59
  • Ciao!

    Nella connection string specifichi al driver quali sono i parametri per connettersi al db server; per sqlserver in breve sono:

    • indirizzo del server (e porta/nome dell'istanza se ci sono più sqlserver installati sulla stessa macchina)
    • nome del db (quello che hai creato al passo precedente)
    • metodo di autenticazione (integrata su usi le credenziali dell'utente della macchina o del dominio, oppure utenza sql)
    • se utilizzi l'utenza sql specifichi username e password

    Per ogni tipologia di database su questo sito trovi un catalogo di tutti le possibili parametri; qui nello specifico per sqlserver .

    Se devo fare l'indovino, la tua installazione di sqlserver è locale e di default è abilitato l'utente windows con cui hai fatto l'installazione, quindi (con un po' di fortuna/veggenza:) dovrebbe essere:

    Server=localhost;Database=METTIQUIILNOMEDELDB;Trusted_Connection=True;

    Se hai installato sqlexpress come server prova: =.\SQLExpress

    Gianluca

    P.S. Scusa x il link rotto, è scappato un punto finale. Quello corretto è questo . Buon lavoro!


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    venerdì 17 gennaio 2014 07:28
  • Ciao Gianluca grazie per la risposta.

    Sono riuscito a connettermi al db SQL e lanciare qualche query, ho provato anche con un access e nessun problema

    Volevo chiederti però un'altra cosa: siccome dovro far risiedere il db su server aziendale e non voglio fare confusione con SQL o installare altri programmi, volevo sapere se uso un file access per il db cosa cambia? I tempi di risposta sono più lunghi? Ho qualche complicazione? Pro e contro?

    Considera che il db conterrà all'incirca una ventina di tabelle e ciascuna di esse composta da circa 50 colonne x 400 righe...

    Grazie mille, se non sono stato chiaro rispiego...

    venerdì 24 gennaio 2014 12:08
  • Ciao,

    con questi carichi non è un problema access. Dovresti però installare i driver sul server.

    Se non vuoi avere problemi di installazione puoi usare sqlcompact (db microsoft per applicazioni embedded): la sintassi e l'interfaccia è pressochè identica a SqlServer, è supportato da EntityFramework ed è accessibile anche tramite il Management Studio. L'unica limitazione è che supporta al' più 256 connessioni contemporanee, ma non mi sembra un problema nel tuo scenario.

    Buon lavoro!

    Gianluca


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    venerdì 24 gennaio 2014 12:25
  • Grazie Gianluca provvederò a usare sqlcompact, 256 connessioni sono sufficienti, al max ne avrò 20 contemporanee.

    Altra domanda: i dati contenuti dal db li leggo solo all'apertura del'applicazione poi non mi servono più o comunque in rare occasioni tornerò a leggerli più di una volta, invece per quanto riguarda scrittura o modifica del db le farò soltanto io tramite management studio, pensi che sia utile caricare un dataset con tutte le tabelle all'avvio dell'applicazione?

    Grazie

    lunedì 27 gennaio 2014 18:19
  • Nessuno mi può aiutare???! please...
    mercoledì 29 gennaio 2014 12:04
  • Ciao gre88,

    un cosa prima di risponderti.. chiunque cerchi di aiutarti qui fa quello che può col tempo che ha e con tanta buona volontà e disponibilità, quindi ti chiedo di avere un po' di pazienza.. Un forum è un forum non è un sito di supporto.. Sono certo che capirai :)

    Detto questo, in situazioni come quella che indichi tu, comincio a pensare ad una cache, la quale può essere a client, oppure a server, dipende dove ti serve.

    Preallocare dati in memory con dataset ti dà la garanzia di non accedere al database ogni volta, ma se quel dataset sta sul client che interroga, ad ogni start dell'applicazione esso viene distrutto e ricreato direttamente nella memoria del client. Forse c'è da iniziare a capire un attimino come vuoi la tua architettura.

    Io mi chiederei:

    • per quanto un dato non è mofificabile?
    • per chi un dato non cambia?
    • chi puà invalidarmi questo layer di cache?

    ad oggi com'è fatta la tua architettura?


    Alessandro Alpi SQL Server MVP

    mercoledì 29 gennaio 2014 12:10
    Moderatore
  • Ciao, scusa ho visto ora la tua risposta.

    Fermo restando la risposta esauriente di Alessandro, se ritieni che ci sia stata una risposta risolutiva alla tua domanda marca la risposta cliccando su "Suggerisci come risposta"; in questo modo chi avrà un problema analogo al tuo troverà subito la risposta senza doversi leggere e interpretare tutto il thread.

    Sempre in quest'ottica, se hai altri dubbi o domande apri un altro thread piuttosto che aggiungerle allo stesso: così la domanda sarà più visibile ad altre potenziali persone che posso aiutarti, e chi avrà un problema analogo potrà essere aiutato:)

    Grazie per la disponibilità!

    Gianluca


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    mercoledì 29 gennaio 2014 12:23
  • Ciao Alessandro grazie per la risposta e scusa se vi ho fatto fretta,non era mia intenzione ma come è capitato a Gianluca e probabilmente a te, la mia domanda è passata inosservata e avrei potuto aspettare settimane prima di ricevere risposta.

    In generale so cosè una cache ma non saprei se mi può tornare utile nel mio caso. Provo a spiegarti lo scopo del mio software così mi puoi suggerire tu.

    Il programma deve essere utilizzato per dei calcoli di prodotti chimici. All'avvio del programma l'ultilizzatore deve selezionare il tipo di prodotto, il dosaggio, il cliente e lo stadio di lavorazione. Con questi 4 parametri faccio una query e vado a cercare nel db le costanti che poi andrò ad utilizzare per i calcoli. Una volta inseriti i valori variabili e le costanti prese dal db schiaccio un bottone e mi stampo i risultati. Nel 90% dei casi il programma a questo punto viene chiuso e riaperto dopo qualche ora ma in qualche caso ritorno all'inizio e riparto con altri 4 parametri. Il db non viene modificato praticamente mai (al max una volta al mese se cambia qualche costante) e in ogni caso posso apportare le modifiche quando nessuno è collegato al server.

    A mio parer direi che creare una cache sul client al primo utilizzo mattutino, e ovviamente scaricarla la sera allo spegnimento del pc, direi che è la miglior cosa soprattutto per non caricare troppo il server di richieste (anche se banali) però non so che effetti può avere un db di queste dimensioni salvato in una cache di un client pc magari un pò attempato...

    Se non sono stato chiaro spiego meglio, grazie ancora

    mercoledì 29 gennaio 2014 16:04
  • Ciao Gianluca

    hai ragione sul fatto di aprire un nuovo thread per nuove domande, appena chiarita questa cosa se ho altre domande farò come suggerito :)

    mercoledì 29 gennaio 2014 16:06
  • In generale, la migliore regola per ottimizzare carichi e tempi è non fare ottimizzazioni a priori fino a chè non hai l'evidenza di un collo di bottiglia; solo allora poniti il problema. Io non aggiungerei una cache solo se l'applicazione mi viene detto che è lenta, o sul server mi viene detto che ci sono troppi accessi.

    Gianluca


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    mercoledì 29 gennaio 2014 16:08
  • Scusa non ti ho capito Gianluca...
    mercoledì 29 gennaio 2014 16:18
  • Scusa, rileggendo ora la risposta mi accordo che è poco chiara...

    Intendo dire che la domanda "pensi che sia utile caricare un dataset con tutte le tabelle all'avvio dell'applicazione" è una domanda "mal posta", nel senso che scegli di porti il problema di una cache solo nel momento in cui capisci di avere dei tempi di performance non accettabili sul server o dei carichi eccessivi sullo stesso.

    Se decidi di fare ottimizzazioni prima di avere l'evidenza di un problema complichi il sistema (rischiando di introdurre bug), senza avere un riscontro in termini di risultati (perché il sistema ha già prestazioni accettabili). Inoltre potrebbero esserci soluzioni più semplici (ad esempio mettendo indici sul db). Il problema è che non sai quale soluzione è la migliore finché non hai strumenti per misurare i risultati.

    Spero di essere stato più comprensibile:D


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    • Contrassegnato come risposta gre88 mercoledì 29 gennaio 2014 21:32
    mercoledì 29 gennaio 2014 19:18
  • Grazie Gianluca ora ho capito perfettamente ;D

    Io intendevo dire se era possibile, soprattutto grazie all'esperienza, avere un minimo di idea del comportamento dei vari componenti (cache, dataset o ricorrere ogni volta al db) per evitare di buttare via del tempo in codici errati ma evidentemente non si può fare... scusa ma in programmazione sono proprio nabbo!

    Ora faccio delle prove poi semmai riapro un thread, x il momento posso considerare questa come la risposta al mio ultimo quesito!

    Grazie mille a presto

    mercoledì 29 gennaio 2014 21:32
  • Il problema è proprio questo: se anticipi delle ottimizzazione stai scrivendo codice (e quindi butti del tempo) per risolvere problemi che al momento non hai.

    E' giusto però - e questo avviene con l'esperienza - che prima di implementare la soluzione più "semplice", che tu ti chieda cosa può succedere in modo da capire se in scenari realistici in cui potresti affrontare i problemi (db lento o troppo carico sul server), quali soluzioni potresti trovare nell'ottica di rispondere alla domanda: "se il db è lento, e decido di mettere una cache dei dati, posso farlo con la mia architettura a costi sostenibili? Se no, come posso migliorare il mio codice affinchè possa prevedere questo scenario?".

    Sostanzialmente: il design del codice può evolvere, l'architettura no (o almeno a costi ragionevoli). Di questi tempi, se hai voglia di approfondirli, puoi leggerti l'ottimo libro di Andrea Saltarello e Dino Esposito.

    Buon lavoro! Gianluca


    Gianluca Carucci
    Software Engineer & Agile Coach
    ugidotnet|web|blog|@rucka

    giovedì 30 gennaio 2014 07:28