Bonjour,

J'ai un petit souci : Un portable doit partir le soir avec la derniere version de la base de donnée celui ci ne sera connecté a aucun reseau.

Le serveur SQL Server 2000.
Le portable SQL Server 2005 express edition + vista

J'ai donc fait un bout de code afin de récupéré une sauvegarde de la base :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
 
private sub form_load()
 
    Set en = rdoEnvironments(0)
    en.CursorDriver = rdUseOdbc
 
    Set cn = en.OpenConnection(dsName:="", prompt:=rdDriverNoPrompt, Connect:="uid=sa;pwd=mdp;driver={SQL Server};" & "server=monbeauserver;database=mabase;")
 
    cn.QueryTimeout = 100000
 
    Set cn2 = en.OpenConnection(dsName:="", prompt:=rdDriverNoPrompt, Connect:="uid=sa;pwd=mdp;driver={SQL Server};" & "server=localhost;database=mabase;")
    cn.QueryTimeout = 100000
 
end sub
 
Private Sub Command1_Click()
    Dim requete As String
    Dim result As rdoResultset
    Dim requete2 As String
    Dim result2 As rdoResultset
 
   On Error GoTo Command1_Click_Error
 
    requete = "BACKUP DATABASE ma_base TO DISK=N'\\(Un serveur public)\PERMANENCE\save.bak'"
    lbl_info = "Sauvegarde de la base exploitation "
    Form1.Refresh
    cn.Execute (requete)
 
    requete = " USE master " _
            & " SELECT 'kill',spid " _
            & " From sysprocesses " _
            & " WHERE dbid=db_id('mabase') "
 
    Set result = cn2.OpenResultset(requete)
 
    While Not result.EOF
        requete2 = result(0) & " " & result(1)
        Set result2 = cn2.OpenResultset(requete2)
        result.MoveNext
    Wend
 
    lbl_info = "Rapatriement du fichier DATA"
    Form1.Refresh
    FileCopy "z:\save.bak", "d:\save.bak"
 
     requete = "RESTORE DATABASE mabase FROM DISK=N'D:\save.bak' with replace "
     lbl_info = "Restauration de la base"
     Form1.Refresh
 
     cn2.Execute (requete)
 
    cn2.Close
 
 
    MsgBox ("Mise a jour du portable terminée avec succés")
 
End Sub

Probleme N° 1 -> Le timeout n'est pas pris
Probleme N° 2 -> La restauration ne marche pas : sous l'entreprise manager la base est signalé comme étént en cours de restauration et on ne peut plus y acceder.

Par contre si je lance la requete de restauration sous l'analyseur de requete la restauration se deroule bien.

Par contre le systeme est pas figé et je suis preneur de toute autre solution


Merci d'avance a tous et une mega bonne journée !!!!
A bientot,
Ntotor