Ricerca 
it-ITen-US
Registrazione
Accedi
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Stampa     


DotNetWork Forums
Database sincronizzati
Ultimo Post 16 feb 2010 11.58 by Marino. 5 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Autore Messaggi

Posts:3

--
10 feb 2010 11.22  
Buongiorno,
ho realizzato un'applicazione vb net che si appoggia ad un database su sql 2005 express.

Vorrei sapere se esiste un modo per tenere due database sempre sincronizzati con tale versione di sql server.(ad esempio due file mdf su due dischi diversi, o due istanza diverse)

Un modo sarebbe quello di eseguire doppie query di inserimento o update ma,
anzichè usare store procedure memorizzate nel server, le operazioni di insert ed update le ho memorizzate direttamente nel codice e quindi sarebbe un lavoro lunghissimo.

Grazie per l'aiuto

Posts:3

--
10 feb 2010 11.44  
Se la replica del database ti serve solo come copia di sicurezza puoi tranquillamente agire dall'esterno e usare un programma come synctoy o syncback che ad intervalli che decidi tu, replica fisicamente i file mdf. I programmi che ho citato sono freeware ovviamente. Il primo è prodotto proprio da Microsoft ed è veramente semplicissimo da usare

Posts:662

--
10 feb 2010 13.24  
le operazioni di insert ed update le ho memorizzate direttamente nel codice e quindi sarebbe un lavoro lunghissimo.
Se non devi avere aggiornamenti in tempo reale copiare i files è la cosa migliore, altrimenti puoi usare due approcci:
1) Da codice apri 2 connessioni ai 2 database. All'oggetto command passi prima una connessione e poi l'altra eseguendo esattamente lo stesso comando sql (occhio alle reference tra tabelle)
2) Sul DB principale implementi una sorta di replica "a manina" utilizzando i trigger, ovvero quando esegui un'operazione CRUD su una tabella fai eseguire un trigger al DB che esegue la stessa operazione sulla corrispondente tabella dell'altro DB. In questo caso l'altro server deve essere registrato sul e accessibile dal primo server.(Anche qua occhio alle reference e alla gestione dei campi identity)
Utilizzando questo tipo di approccio non sei obbligato ad interrompere il servizio di SQL in nessuno dei 2 db e scrivi esclusivamente quando ne hai effettivo bisogno.
HTH
Alberto.

Posts:3

--
11 feb 2010 15.23  

Grazie a entrambi per le risposte.
 Ho optato per la soluzione dei trigger.
Se qualcuno fosse interessato posto la soluzione.
 
Per ogni tabella ho aggiunto un trigger per l'inserimento, la cancellazione e la modifica di una tupla.
Il trigger è questo:
    CREATE TRIGGER AggiornaTabella
    ON [DBmaster].[dbo].[tabella1]
    FOR update | inserted | deleted
    AS INSERT [DBslave].[dbo].[tabella1] 
    SELECT * FROM updated | inserted | deleted
   GO
 
Ora dovrò implementare la gestione degli errori.  (soprattutto per le tabelle che hanno come chiave primaria un campo incrementale calcolato).
Ovviamente se avete una soluzione migliore o dei suggerimenti sono ben accetti.
 Grazie


Posts:662

--
11 feb 2010 16.58  
Ora dovrò implementare la gestione degli errori. (soprattutto per le tabelle che hanno come chiave primaria un campo incrementale calcolato).
Puoi usare l'istruzione SET IDENTITY_INSERT ON|OFF sulla tabella di destinazione nel caso in cui fai un insert... Puoi leggere i Book On Line di SQL per vedere la sintassi e gli esempi.
HTH
Alberto

Posts:3

--
16 feb 2010 11.58  

Grazie alberto per la risposta.
 Ho un problema nella gestione dell'errore dei trigger.
 Questo è il trigger che uso per l'aggiornamento.
 
CREATE TRIGGER [Dbmaster].[dbo].[AggiornaTab]
ON [Dbmaster].[dbo].[table1]
after update
AS
begin try
 begin tran
delete from [DBslave].[dbo].[table1] where [DBslave_DB1].[dbo].[table1].ID in (select ID from deleted)
INSERT [DBslave_DB1].[dbo].[table1] SELECT * FROM inserted
end try
Begin Catch
End catch

Se per un qualsiasi motivo il database DBslve fosse irraggiungibile, viene interrotta la transazione di updte nel DBmaster, nonostante le operazioni siano in un blocco try catch. Come posso gestire gli errori con priorità minore di 10?

In pratica vorrei che nonostante il trigger di allineamento fallisse, la modifica della tupla nel DBmaster avvenga comunque.
Grazie

Non sei autorizzato ad inviare una risposta.

Active Forums 4.1
       
Articoli
Formattare le Datagridview
Come modificare il comportamento visuale di una Datagridview
2008/07/27 | Autore: Andrea Zingoni
Panoramica degli elementi base del WPF
Come iniziare a capire com'è fatto il WPF [Windows Presentation Foundation] (parte 2)
2007/07/30 | Autore: Patrizia Cosolo
Fritto Misto - Classi di uso comune (parte 5)
Helper: Eccezioni personalizzate e Messaggi compositi
2007/10/27 | Autore: Sabrina Cosolo
Introduzione a Windows Presentation Foundation (parte 2)
La prima di una serie di traduzioni da articoli di MSDN o altre fonti che offrono un punto di partenza per iniziare a capire il WPF.
2007/07/29 | Autore: Patrizia Cosolo
Miniguida alla OOP con il .NET Framework- Parte II
Le Classi e l'Incapsulamento.
2008/10/09 | Autore: Alberto De Luca 
Lavorare con i Generic - Led Control
Creare un controllo che simula i moduli LED
2007/11/11 | Autore: Alberto De Luca
ADO.NET - Mini guida per l'utente
Introduzione agli oggetti dati di ADO.NET
2007/07/26 | Autore: Alberto De Luca
Introduzione a Windows Presentation Foundation (parte1)
La prima di una serie di traduzioni da articoli di MSDN o altre fonti che offrono un punto di partenza per iniziare a capire il WPF.
2007/07/29 | Autore: Patrizia Cosolo
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2012 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.