Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    28

    [VB6] Backup e restore database SQL Server automaticamente da codice

    Come fare a fare il backup ed il restore di una database sqlserver ?
    Ho visto numerosi esempi che utilizzano SQLDMO ma ho letto che è un componente deprecato e comunque non so dove trovarlo.
    Viceversa ho anche visto che si può utilizzare ADO e sarebbe questa la soluzione che preferisco.
    Tuttavia non sono riuscito a concludere alcunchè.
    Grazie dell'aiuto che vorrete darmi.

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Devi utilizzare i comandi di SQL Server, controlla nella documentazione (il BOL) della tua versione.
    Comunque sono comandi così:

    USE [master]
    BACKUP DATABASE [parametri vari]
    GO

    USE [master]
    RESTORE DATABASE [parametri vari]
    GO

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    28
    Questo lo so ma non so come eseguire questi comandi dal VB6.

  4. #4
    perché da VB6? Fa' un .bat e mettilo in un'attività pianificata

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quote Originariamente inviata da Andropa Visualizza il messaggio
    Questo lo so ma non so come eseguire questi comandi dal VB6.
    In che senso? Hai detto che vuoi usare ADO, allora usalo.
    Non capisco la tua domanda...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    28
    Riuscito al 50% !
    Ecco come con ADO riesco a fare il backup
    ssql = "BACKUP DATABASE db2018 TO DISK = '" & NomeFileBak & "'"
    Cnn.Execute (ssql)
    dove Cnn è la connessione. Occhio agli apici !
    Adesso sono alle prese con il restore
    ssql = "RESTORE DATABASE " & NomeFileBak & " FROM DISK = '" & LbCartella.Caption & "'"
    Cnn.Execute (ssql)
    ma mi da errore, probabilmente dovuto al fatto che Cnn è aperta sul medesimo database che si intende sostituire.
    Tentativi come aggiungere un REPLACE o WITH RECOVERY non hanno avuto successo.
    Come rimediare ?

  7. #7
    @Andropa, curiosità mia: come mai vuoi governare queste operazioni da VB6? Posso capire (a fatica) il backup, ma la restore è un'operazione delicata che a parer mio andrebbe fatta da console...

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Perché lui è convinto che con una righetta di codice se la cava.
    Come ben sai, optime, dietro ad un Backup e ad un Restore c'è un 'mondo' di problematiche, che lui crede di 'domare' facendo domande su un forum, fare qualche ricerca sul web, ...
    Basterebbe leggere il BOL per rendersene conto, cosa che ovviamente non ha fatto, visto la domanda ridicola che ha posto.
    Io queste operazioni le eseguo esclusivamente dal SSMS, il Restore esclusivamente manualmente, invece il backup è pianificato.

  9. #9
    Quote Originariamente inviata da gibra Visualizza il messaggio
    Io queste operazioni le eseguo esclusivamente dal SSMS, il Restore esclusivamente manualmente, invece il backup è pianificato.
    E' l'approccio più corretto.

    Però vorrei sentire anche le motivazioni di Andropa

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    28
    Ringrazio innanzitutto per l'attenzione prestata e vado ad esporre le motivazioni, come da qualcuno richiesto.
    Eccole: il programma va in mano a persona poco esperta (ancor meno di me, il che è tutto dire) per cui non è assolutamente proponibile che costui utilizzi l'SSMS.
    Righetta di codice: al post #6 ho dimostrato che con una righetta di codice (vabbè, sono 2) si ottiene quanto desiderato. Mi aspetterei un risultato simile per il restore.
    Ho davanti a me un librone di 545 pagine (W. Stanek - SQL SERVER 2005) e fatico assai a comprenderlo. Pensavo che, con il vostro aiuto, mi sarei evitato un gran mal di testa.
    Se poi non è possibile tecnicamente fare quanto desiderato pazienza, me ne farò una ragione.
    E' del tutto evidente che il livello di conoscenza dei partecipanti ad un forum è quanto mai vario e spazia fra opposti estremi: chi conosce tutto o quasi e chi conosce poco o niente ma desidera (desidererebbe) ugualmente arrivare ad un risultato, con un aiuto da parte di chi è disponibile a darlo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.