existe t'il une commande qui permet de vidé une table access en une operation ou presque, genre drop comme dans SQL
Merci
existe t'il une commande qui permet de vidé une table access en une operation ou presque, genre drop comme dans SQL
Merci
Access interprète aussi le SQL ; donc il suffit de faire "DELETE * FROM nom_de_table" ou même "DROP TABLE"...
sinon créer des recordsets et effacer chaque enregistrement avec une boucle mais c'est pas très subtil
Ceci est il bon alors ?![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim dtr As DataRow Dim daArticle As OleDb.OleDbDataAdapter daArticle = New OleDb.OleDbDataAdapter("DELETE FROM C2000", My.Settings.CnxIsd)
Message que je reçois lors de la suppression de +-27500 records
Why ?Le CLR n'a pas pu effectuer de transition du contexte COM 0xfcdd0 au contexte COM 0xfcf40 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.![]()
es tu sous windows 2000? Je sais qu'il y'avait des problèmes de ce côté là sous cet OS. Cependant il existe un patch correctif.
Tiens nous au courant
Eh non !
D'après le MSDN il faut prendre plutot OleDbCommand et non OleDbDataAdapter !
OleDbDataAdapter sert à établir le lien avec une bdd c'est OleDbCommand qui va réaliser la requete SQL a proprement parlé.
Donc il suffit de passer la bonne "query" au constructeur de OleDbCommandDim conn As New OleDbConnection(connection)
Dim adapter As New OleDbDataAdapter()
Dim query As String
query="DELETE * FROM"
adapter.SelectCommand = new OleDbCommand(query, conn)
Non je suis sous Vista UltimateEnvoyé par hubertfabien
j'essaye ceci
mais sa ne marche pas voici l'adaptation voir si ok merciDim conn As New OleDbConnection(connection)
Dim adapter As New OleDbDataAdapter()
Dim query As String
query="DELETE * FROM"
adapter.SelectCommand = new OleDbCommand(query, conn)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim adapter As New OleDb.OleDbDataAdapter() Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Logiwin\isd.mdb") adapter.SelectCommand = New OleDb.OleDbCommand("DELETE * FROM C2000", conn)
Bonjour.
Essayes plutôt :
Dim strSqlQuery As String = "DELETE FROM C2000"
Dim cmd As New OleDb.OleDbCommand(strSqlQuery, LaConnectionQuiVaBien)
cmd.ExecuteNonQuery()
Je pense que ça sera suffisamment rapide pour éviter de titiller le ContextSwitchDeadlock qui lève ton message "Le CLR...
Nota : affecter un ordre Delete à un SelectCommand d'un dataadapter me semble assez douteux.
Cdt.
Voici l'adaptation pour moi, et c'est le pied grand merci
![]()
![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim conn As New OleDb.OleDbConnection(" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Logiwin\isd.mdb") conn.Open() Dim cmd As New OleDb.OleDbCommand("DELETE FROM C2000", conn) cmd.ExecuteNonQuery() conn.Close()
Partager