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 :
- sDBName = "mabase"
- Set oDB = CreateObject("SQLDMO.Database" )
- Set oDB = oSQLServerDMO.Databases(sDBName)
-
- sMDFPath = oDB.FileGroups.Item("PRIMARY" ).DBFiles.Item(1).PhysicalName
- sLDFPath = oDB.TransactionLog.LogFiles.Item(1).PhysicalName
-
- Set oDBRestore = CreateObject("SQLDMO.Restore" )
- oDBRestore.Action = SQLDMORestore_Database
- oDBRestore.Database = sDBName
- oDBRestore.Files = "[d:\mabase.bak]"
- oDBRestore.ReplaceDatabase = True
- oDBRestore.RelocateFiles = "[mabasedistante_Data],[" & sMDFPath & "],[mabasedistante_Log],[" & sLDFPath & "]"
- 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