11 messaggi dal 28 aprile 2006
Vorrei distribuire un db sql server, i file mdf e ldf, con un pacchetto di installazione, ed avrei la necessita di installarli sul sql server.
E' possibile installare un db in sql server attraverso una procedura automatica avviabile da un pacchetto di installazione?
Eventualmente potrei accedere da programma ai file suddetti senza bisogno del sql server?
Grazie e ciao.
ciro
1.976 messaggi dal 27 luglio 2005
Contributi
salve Ciro,
cicorvin ha scritto:
Vorrei distribuire un db sql server, i file mdf e ldf, con un pacchetto di installazione, ed avrei la necessita di installarli sul sql server.
E' possibile installare un db in sql server attraverso una procedura automatica avviabile da un pacchetto di installazione?
Eventualmente potrei accedere da programma ai file suddetti senza bisogno del sql server?
Grazie e ciao.
ciro

lo puoi fare, se il tuo installer engine prevede in un qualche modo anche la possibilita' di creare ad esempio oggetti COM (ad esempio CreateObject("ADODB.Connection") ovvero anche CreateObject("SQLDMO.SQLServer")), in questo modo potrai poi eseguire l'attach/restore/create database come preferito...
resta un problema di UI, nel senso che dovresti anche richiedere una login e relative credenziali di accesso a SQL Server, ovvero indicare se utilizzare una connessione trusted, ma penso sia risolvibile dai vari installer disponibili.. InnoSetup ad esempio lo supporta...

un altro aspetto pero' vorrei farti notare... personalmente mi sono sempre "battuto" contro questo modo di distribuzione delle basi dati, e se googli un po' potrai trovarne conferma, questo anche "contro" le indicazioni di politica di distribuzione rilasciate da Microsoft stessa..
personalmente non amo molto l'installazione via attach/restore in quanto non rispetta le impostazioni utente relative sia alla collation di sistema che eventuali impostazioni da ereditare dal database Model... questo inteso per tutti gli eventuali oggetti aggiunti dall'utente al database Model, siano essi oggetti di database che eventuali Utenti, Ruoli etc...

riguardo alle regole di confronto si puo' benissimo obiettare che SQL Server 2000 e successivi supportano diverse specifiche di collation, sia a livello di istanza, che di singolo database ed addirittura di colonna, ma ho visto molto spesso query fallire proprio perche' non risolte nella collation, specificatamente relativamente alle tabelle temporanee generate in tempdb (che eredita la collation di sistema)..
e' opportuno in tal caso codificare le proprie query in modo da risolvere correttamente le collation, ad esempio come brillantemente indicato da AlessandroD nel ng microsoft.public.it.sql, http://tinyurl.com/rjoyv ..

riguardo agli oggetti... c'e' poco da dire/fare... mancano e basta

ripeto, Microsoft stessa utilizza e consiglia anche soluzioni basate su attach/restore, ma personalmente preferisco ed adotto da sempre soluzioni di scripting, dove fornisco solamente gli script DDL (ed eventalmente DML per il caricamento di tabelle da prepololare) che vengono eseguiti da un tool appositamente confezionato, che oltre ad occuparsi della creazione delle basi dati e' anche in grado di gestirne l'aggiornamento strutturale che sicuramente prima o poi sara' necessario...
oltre a garantire il rispetto delle impostazioni utente, cio' garantisce anche la possibilita' di mantenere lo schema delle basi dati sotto strumenti di controllo di versione (ad esempio SourceSafe)

presso http://msdn.microsoft.com/msdnmag/issues/04/09/customdatabaseinstaller/ puoi vedere l'articolo che da sempre reputo il "migliore" riguardo questa problematica e che piu' si avvicina al mio modo di operare..

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
11 messaggi dal 28 aprile 2006
Ciao Andrea,
ti ringrazio moltissimo per la tua risposta, estremamente accurata e completa. In effetti, data la mia inesperienza, ero un po' in dubbio sul da farsi a riguardo della modalità di distribuzione dei db, e alla fine la scelta di distribuire i file riportanti direttamente la struttura, gli utenti e i dati, mi sembrava la più facile.
Grazie alle tue considerazioni mi sono deciso per la soluzione degli script, ed in proposito mi hai dato tutte le indicazioni più utili.
Ancora grazie e complimenti per la tua competenza e la tua disponibilità.
Ciro Corvino

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.