[VB6 et SQLDMO] Comment restaurer une base

Comment restaurer une base [VB6 et SQLDMO] - VB/VBA/VBS - Programmation

Marsh Posté le 17-10-2006 à 11:00:16    

bonjour,  
 
Bon voila j'utilise VB6 et SQL Server 2k, et j'aimerai restaurer une base via une programation VB.
 
La base a été créée sur un serveur SQL distant, un backup (mabase.bak) a été créé sur ce serveur distant.
J'aimerai maintenant restaurer cette base sur un autre serveur SQL en utilisant SQLDMO.
 
La base originale s'appelle mabasedistante et la nouvelle base obtenue après restauration s'appelle mabase
 
J'ai pour cela un problème avec les fichiers mabasedistante_data.mdf et mabasedistante_data.ldf.
 
comment puis-je récupérer les Logical Name afin de les associer aux nouveaux physical names ??
 
J'ai pour le moment le code suivant :
 

Code :
  1. sDBName = "mabase"
  2. Set oDB = CreateObject("SQLDMO.Database" )
  3. Set oDB = oSQLServerDMO.Databases(sDBName)
  4.            
  5. sMDFPath = oDB.FileGroups.Item("PRIMARY" ).DBFiles.Item(1).PhysicalName
  6. sLDFPath = oDB.TransactionLog.LogFiles.Item(1).PhysicalName
  7.                    
  8. Set oDBRestore = CreateObject("SQLDMO.Restore" )
  9. oDBRestore.Action = SQLDMORestore_Database
  10. oDBRestore.Database = sDBName
  11. oDBRestore.Files = "[d:\mabase.bak]"
  12. oDBRestore.ReplaceDatabase = True
  13. oDBRestore.RelocateFiles = "[mabasedistante_Data],[" & sMDFPath & "],[mabasedistante_Log],[" & sLDFPath & "]"
  14. oDBRestore.SQLRestore oSQLServerDMO


 
Evidemment ce code ne marche pas, il me pond une erreur du genre mabasedistante_Data cannot be restored to "la valeur de mon sMDFPath" et idem pour le Log. Il me demande ensuite gentiment d'utiliser WITH MOVE pour identifer une 'location' valide pour mon fichier...
 
Est ce que quelqu'un saurait comment je dois faire pour restaurer ma ******* de base ??
 
Merci
 
Cheloute

Reply

Marsh Posté le 17-10-2006 à 11:00:16   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed