Creazione Db sql server express via codice

mercoledì 06 dicembre 2006 - 09.34

trinity Profilo | Guru

Salve ragazzi,
ho terminato di creare un piccolo software applicativo che poggia il suo db in sql server express..ora dovrei distribuire questo software ovviamente insieme al db quindi ecco le mie seguenti domande:

1 - C'è la possibilità via codice di creare il db durante il setup dell'applicativo? Se non è possibile c'è il modo di integrare nel setup di vb net2005 anche la possibilità di installare sia il motore db sql server express ed il framework?

2- Nel db ho creato delle stored per gestire i dati, se creo il db da codice per esempio all'avvio dell'applicazione potrei fare in modo di fare un controllo se esiste oppure no il database se non esiste me lo crea se esiste lo carica(ma non so come fare a mettere in pratica questa idea) anche le stored devo crearle da codice(penso di si) Oppure è molto + semplice e pratico effettuare un restore del db visto che poi ho delle tabelle già con dei dati all'interno? Solo che spesso non sempre il disco su cui poggerà il db sia il disco "C".

Spero di aver fatto capire bene il mio piccolissimo problema

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

trinity Profilo | Guru

>>Salve ragazzi,
>>ho terminato di creare un piccolo software applicativo che poggia
>>il suo db in sql server express..ora dovrei distribuire questo
>>software ovviamente insieme al db quindi ecco le mie seguenti
>>domande:
>>
>>1 - C'è la possibilità via codice di creare il db durante il
>>setup dell'applicativo? Se non è possibile c'è il modo di integrare
>>nel setup di vb net2005 anche la possibilità di installare sia
>>il motore db sql server express ed il framework?
>Tramite il publish delle applicazioni che usa ClickOnce puoi
>decidere quale software installare e controllare.
>
>>
>>2- Nel db ho creato delle stored per gestire i dati, se creo
>>il db da codice per esempio all'avvio dell'applicazione potrei
>>fare in modo di fare un controllo se esiste oppure no il database
>>se non esiste me lo crea se esiste lo carica(ma non so come fare
>>a mettere in pratica questa idea) anche le stored devo crearle
>>da codice(penso di si) Oppure è molto + semplice e pratico effettuare
>>un restore del db visto che poi ho delle tabelle già con dei
>>dati all'interno? Solo che spesso non sempre il disco su cui
>>poggerà il db sia il disco "C".
>>
>Hai due modi ho usi l'interfaccia SQLDMO che lavori tramite object
>model oppure guarda questo
>http://www.codeproject.com/useritems/DBInstaller.asp


ma questo esempio su codeproject va bene anche per sql server express 2005?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

lbenaglia Profilo | Guru

>Hai due modi ho usi l'interfaccia SQLDMO che lavori tramite object
>model

SQLDMO è un object model basato su COM che non ha subito evoluzioni rispetto a SQL Server 2000. Dato che Fabio utilizza SQL Server 2005 e parla di "framework" (presumo .NET) probabilmente risulterebbe più comodo e naturale utilizzare i SQL Server Management Objects (SMO) :

"SQL Server Management Objects (SMO)"
http://msdn2.microsoft.com/en-us/ms162169.aspx

Ad ogni modo io resto dell'idea di installare separatamente SQL Server 2005 Express e mediante sqlcmd.exe creare il db (da script oppure eseguendo un restore|attach di un "template").

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

trinity Profilo | Guru

Ok Lorenzo sono della tua stessa opinione e se volessi fare un restore che mi sembra meglio nel mio caso, supponendo che la cartella del db si trova in un supporto cd rom, sapendo che le unità possono variare il restore come dovrei farlo? ovviamente dovrei utilizzare in partenza un db diverso tipo master per esempio

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

lbenaglia Profilo | Guru

>Ok Lorenzo sono della tua stessa opinione e se volessi fare un
>restore che mi sembra meglio nel mio caso, supponendo che la
>cartella del db si trova in un supporto cd rom, sapendo che le
>unità possono variare il restore come dovrei farlo?

Ciao Fabio,

mah, potresti anche copiarlo su disco fisso nel path selezionato dall'utente.
A questo punto conosci sia l'unità logica che il percorso, quindi puoi comporre dinamicamente il comando di RESTORE.
Al termine dell'operazione lo elimini.

>ovviamente
>dovrei utilizzare in partenza un db diverso tipo master per esempio
Esatto, anche perché il database della tua applicazione non esiste ancora

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

trinity Profilo | Guru

Grazie mille Lorenzo...

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5