Bonsoir,
je suis en train de reprendre un module de sauvegarde de base de données sql server écrit en VB.NET il y a quelques années pour le traduire en Windev.
Dans l'ancien module, sur clic d'un bouton backup, j'exécutais ce code :
Je précise que pour pouvoir faire un backup database il fallait être connecté à la base MASTER qui "chapeaute" les autres bases.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ' NOM DU FICHIER Dim Sql As String Dim nomfichier As String = "SAV" & Now.ToString("s", CultureInfo.InvariantCulture).Replace(":", "-") ' BACKUP DE LA BD DANS UN FICHIER .BAK MasterConnection(Conn) Sql = "BACKUP DATABASE GPAO TO DISK=N'" & depot & nomfichier & ".bak '" Conn.Execute(Sql) DeconnectBD(Conn)
Aujourd'hui sous Windev17, au sein de l'analyse qui me raccorde à la base GPAO (via un premier object Connexion que j'ai appelé Cnx), j'ai créé un deuxième objet connexion sur la base MASTER (que j'ai appelé Master).
J'ai fais le test de connexion (le bouton TESTER de l'assistant), et ça semble bon.
Maintenant j'ai le code suivant :
Evidemment l'insertion en table bku se passe comme il faut.
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 Sql est une chaîne d est une Date = DateSys h est une Heure = HeureSys depot est une chaîne = "\\localhost\backups_gpao\" nomfichier est une chaîne = "SAV-" + DateVersChaîne(d,"AAAA-MM-JJ")+"-"+HeureVersChaîne(h, "HH-MM-SS") dh est une chaîne = DateVersChaîne(d,"AAAAMMJJ")+HeureVersChaîne(h,"HHMMSS") // ON ENREGISTRE LA TRACE DE LA SAUVEGARDE DANS LA TABLE bku Sql = "INSERT INTO bku (bk_nom_fichier, bk_date, bk_commentaire) VALUES ('" + nomfichier + ".bak" + "', '" + dh + "', 'aucun')" Info(Sql) SI PAS HExécuteRequêteSQL("Insertion",Cnx,hRequêteDéfaut ,Sql) ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql) FIN // SAUVEGARDE DE LA BD DANS LE .BAK Sql = "BACKUP DATABASE GPAO TO DISK=N'" + depot + nomfichier + ".bak '" Info(Sql) SI PAS HExécuteRequête("Backup", Master, hRequêteSansCorrection, Sql) ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql) FIN
Pour la génération du .bak j'ai l'erreur suivante :
Soit ma requête est mal écrite ou mal interprêtée (mais bon actuellement ça fonctionne quand j'exécute mon soft en VB.NET), soit ma connexion Master n'est pas réalisée au bon endroit, soit on ne peut pas faire ça dans un thread (car le code windev est une procédure lancée dans un thread) !!?Erreur d'initialisation de la requête
Erreur dans le code SQL de la requête <Backup>. Initialisation de la requête impossible. Mot DATABASE inattedu
BACKUP DATABASE GPAO TO
DISK N'\\localhost\backups_gpao\SAV-2012-11-13-17-42-58.bak'
Toute aide est la bienvenue.
Merci à vous
Partager