belhocines
Messages postés3Date d'inscriptionmercredi 3 février 2010StatutMembreDernière intervention14 juin 2011
-
13 juin 2011 à 18:57
belhocines
Messages postés3Date d'inscriptionmercredi 3 février 2010StatutMembreDernière intervention14 juin 2011
-
14 juin 2011 à 15:30
Bonjour à tous
Svp, j'ai besoins d'aide après avoir perdu espoir de régler mon problème tout seul. J'ai vraiment galéré.
Voila donc mon problème.
Je dois transférer certaine données d'une BD vers une autre (gros volume), en prenant soin de renommer certaines tables qui seront remplacées par de nouvelles autres (pour garder trace de l'ancienne activité).
Dans ADO.Net je n'arrive pas à utiliser des instructions SQL "RENAME TABLE AncNomDeTable TO NouvNomDeTable;". Je reçois toujours un message comme quoi instruction UPDATE, SELECT, INSERT ... sont attendues.
Merci à tous ceux qui apporteront une aide quelconque.
belhocines
Messages postés3Date d'inscriptionmercredi 3 février 2010StatutMembreDernière intervention14 juin 2011 14 juin 2011 à 15:30
Bonjour,
ADO et ADO.NET ne permettant que des instructions SQL SELECT, UPDATE, DELETE, DROP TABLE, INSERT...
J'ai essayé plusieurs approches, et même un bout de code utilisant ADOX récupéré sur un forum...
Ceci est le code ADOX.
Private Function RenameTable(ByVal strOldTableName As String, ByVal strNewTableName As String) As String
Dim con As New ADODB.Connection, cat As Catalog = New Catalog
Dim tblOld As ADOX.Table = New ADOX.Table
Dim tblNew As ADOX.Table = New ADOX.Table
Dim strError As String = ""
Try
With con
.Provider = "Microsoft.Jet.OLEDB.4.0;"
'.Properties("Jet OLEDB: System database") = ""
.Open("Data Source=" & OpenFileDialog1.FileName & ";" & _
"Password=Ultimate")
End With
cat.ActiveConnection = con
tblOld = cat.Tables(strOldTableName)
If tblOld Is Nothing Then
strError = "Old Table does not exist!"
GoTo EndRenameProcessing
End If
Try
tblNew = cat.Tables(strNewTableName)
If Not tblNew Is Nothing Then
strError = "New Table name already exists!"
GoTo EndRenameProcessing
End If
Catch
End Try
tblOld.Name = strNewTableName
strError = ""
Catch ex As Exception
strError = ex.Message
GoTo EndRenameProcessing
End Try
EndRenameProcessing:
RenameTable = strError
End Function
Je ne sais pas si la logique est correcte mais la function signale toujours une exception et ne fait donc rien du tout.
J'ai essayé énormément d'autres possibilités, rien. J'ai aussi cherché dans l'aide MSDN, mais j'ai désespéré. J'avoue que c'est devenu beaucoup trop complexe pour moi pour y comprendre quelque chose ou trouver une information concise et efficace.