Principale utente con più risposte
aiuti sql server 2008

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
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
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 -
-
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
-
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
-
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- Proposto come risposta Edoardo BenussiMVP, Moderator martedì 14 gennaio 2014 13:59
-
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
-
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- Proposto come risposta Alessandro AlpiMVP, Moderator venerdì 17 gennaio 2014 09:10
-
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...
-
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 -
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
-
-
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
-
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 -
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
-
-
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 -
-
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
-
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
-
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