Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Attach database
giovedì 18 gennaio 2007 - 12.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
patry
Profilo
| Newbie
7
messaggi | Data Invio:
gio 18 gen 2007 - 12:58
Salve a tutti,
sapreste dirmi come fare un attach da codice o da shell dos??
Mi spiego meglio...ho sviluppato un'applicazione in vb.net 2003 che utilizza un db in SQL server 2000. Dopo varie avventure sono riuscita a capire la logica di sql server e a individuare i seguenti passi per poter spostare il db su una macchina diversa (dove devo installare la mia applicazione)
-Scollegare db da SQL Query Analyzer:
USE master;
ALTER DATABASE mydb
SET SINGLE_USER;
GO
EXEC sp_detach_db 'mydb', 'true';
-A questo punto ho creato il mio pacchetto d'installazione aggiungendo come file esterni mydb_Data.mdf e mydb_Log.ldf
Arriviamo al punto cruciale: il db non è collegato quindi come faccio a collegarlo dopo l'istallazione?
oppure
E' possibile far collegare il db alla prima apertura del programma?
Ho cercato di seguire questa seconda strada, ma con scarsi risultati.....procedendo nel seguente modo:
1. Ho creato un file myscrit.sql in cui ho scritto
CREATE DATABASE $(myDatabase)
ON (FILENAME = '$(myPath)')
FOR ATTACH;
2. Nell'applicazione per analizzare il primo avvio ed eventualmente fare il collegamento ho inserito il seguente codice
If File.Exists(pathname) = False Then
Dim sw As StreamWriter = File.CreateText(pathname)
Dim apici As String = """"
sw.Write("C:\>sqlcmd -E -i")
sw.Write(apici)
sw.Write("C:\myScript.sql")
sw.Write(apici)
sw.Write(" -v myDatabase=")
sw.Write(apici)
sw.Write("mydb")
sw.Write(apici)
sw.Write(" myPath=")
sw.Write(apici)
sw.Write("C:\percorsodb\mydb_Data.mdf")
sw.Write(apici)
sw.Flush()
sw.Close()
Dim fullPath As String
fullPath = Path.GetFullPath(pathname)
System.Diagnostics.Process.Start(fullPath)
End If
in realtà non funziona... il comando sqlcmd è utilizzabile in sql server 2000? oppure suggeritemi un modo alternativo.
Grazie in anticipo dell'aiuto
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 18 gen 2007 - 14:13
>Salve a tutti,
>sapreste dirmi come fare un attach da codice o da shell dos??
Il DOS non esiste più
Eventualmente Shell e basta.
>Mi spiego meglio...ho sviluppato un'applicazione in vb.net 2003
>che utilizza un db in SQL server 2000. Dopo varie avventure sono
>riuscita a capire la logica di sql server e a individuare i seguenti
>passi per poter spostare il db su una macchina diversa (dove
>devo installare la mia applicazione)
Io personalmente l'attach o il restore del DB lo farei manualmente e non automaticamente.
Oppure puoi esportare lo script di tutti gli oggetti su un file .sql che una volta lanciato sul server destinazione ti creerà tutto lo scheletro della struttura del database (zero dati però, sarà vuoto) non so se tu devi partire con il db vuoto o con dentro dei dati. In ogni caso si possono creare script anche per ripristinare tutti i dati.
>in realtà non funziona... il comando sqlcmd è utilizzabile in
>sql server 2000? oppure suggeritemi un modo alternativo.
Se non sbaglio sqlcmd.exe è di SQL Server 2005, per SQL 2000 c'è osql.exe anche se credo che con sqlcmd.exe si possano fare per compatibilità le stesse operazioni che si facevano con osql.exe.
Ciao
david
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
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 !