OVH Cloud OVH Cloud

Table temporaire

4 réponses
Avatar
Jean
Bonjour,
Dans un programme VB6, je crée une table temporaire.(objet command et ADO)
Après avoir traité cette table, je veux la supprimer afin de recommencer un
traitement.
Malgre le close de l'objet connection(ADOCON.CLOSE),
sa suppression de la mémoire (SET ADOCON = nothing)
la table n'est suprimée qu'a la fermeture du programme.
Ma question : comment supprimer une table temporaire sans quitter le
programme ??
merci à tous;
Jean

4 réponses

Avatar
Zoury
Salut Jean! :O)

sur quelle base de données travailles-tu (sql server, access, oracle, etc.)
et comment est créer cette table ?

--
Cordialement
Yanick
MVP pour Visual Basic
"Jean" a écrit dans le message de
news:41f11643$0$2654$
Bonjour,
Dans un programme VB6, je crée une table temporaire.(objet command et


ADO)
Après avoir traité cette table, je veux la supprimer afin de recommencer


un
traitement.
Malgre le close de l'objet connection(ADOCON.CLOSE),
sa suppression de la mémoire (SET ADOCON = nothing)
la table n'est suprimée qu'a la fermeture du programme.
Ma question : comment supprimer une table temporaire sans quitter le
programme ??
merci à tous;
Jean




Avatar
Jean
Bonjour,

Désolé pour cette réponse tardive.
J'utilise SQLSERVER 2000
La table est créée par une requête exécutée avec un objet ADODB.COMMAND
(select ... into #TMP ....).
J'ai trouvé une solution en exécutant, si la table existe, un TRUNCATE
TABLE.
Mais il peut être intéressant de savoir si on peut supprimer une table
temporaire par programme.

D'avance Merci
Jean

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:%238Dxh78$
Salut Jean! :O)

sur quelle base de données travailles-tu (sql server, access, oracle,


etc.)
et comment est créer cette table ?

--
Cordialement
Yanick
MVP pour Visual Basic
"Jean" a écrit dans le message de
news:41f11643$0$2654$
> Bonjour,
> Dans un programme VB6, je crée une table temporaire.(objet command et
ADO)
> Après avoir traité cette table, je veux la supprimer afin de recommencer
un
> traitement.
> Malgre le close de l'objet connection(ADOCON.CLOSE),
> sa suppression de la mémoire (SET ADOCON = nothing)
> la table n'est suprimée qu'a la fermeture du programme.
> Ma question : comment supprimer une table temporaire sans quitter le
> programme ??
> merci à tous;
> Jean
>
>




Avatar
Zoury
Salut Jean!

Les tables temporaires sous SQL Server 2000 (je ne sais pour 97), sont créer
dans la BD tempdb.

tu pourrais testé sont existence et la supprimer/vider au besoin comme ceci
---
if (object_id('tempdb..#matable') is not null)
-- on la vide
truncate table tempdb..#matable
-- tu peux aussi la supprimer..
-- drop table tempdb..#matable
---
je crois que tu peux exécuter cette ligne directement depuis un
ADODB.Command. je veux dire :
'***
cmd.CommandText = "if (object_id('tempdb..#matable') is not null)" &
vbNewLine & _
"truncate table tempdb..#matable"
'***


J'ai trouvé une solution en exécutant, si la table existe, un TRUNCATE
TABLE.



je veux juste te faire remarquer, si ce n'est déjà fait, que TRUNCATE TABLE
n'agit pas exactement de la même façon que la syntaxe DELETE FROM qui est
courrament employé pour vidé une table.
http://groups.google.com/groups?selm=%23Uhf1EcD%23GA.253%40uppssnewspub05.moswest.msn.net


--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
Jean
Bonjour,
J'ai trouvé,
le DROP TABLE #xxx fonctionne à condition que tous les recordset liés à la
connection soient fermés.
Bon Boulot.
Jean


"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
Salut Jean!

Les tables temporaires sous SQL Server 2000 (je ne sais pour 97), sont


créer
dans la BD tempdb.

tu pourrais testé sont existence et la supprimer/vider au besoin comme


ceci
---
if (object_id('tempdb..#matable') is not null)
-- on la vide
truncate table tempdb..#matable
-- tu peux aussi la supprimer..
-- drop table tempdb..#matable
---
je crois que tu peux exécuter cette ligne directement depuis un
ADODB.Command. je veux dire :
'***
cmd.CommandText = "if (object_id('tempdb..#matable') is not null)" &
vbNewLine & _
"truncate table tempdb..#matable"
'***


> J'ai trouvé une solution en exécutant, si la table existe, un TRUNCATE
> TABLE.

je veux juste te faire remarquer, si ce n'est déjà fait, que TRUNCATE


TABLE
n'agit pas exactement de la même façon que la syntaxe DELETE FROM qui est
courrament employé pour vidé une table.



http://groups.google.com/groups?selm=%23Uhf1EcD%23GA.253%40uppssnewspub05.moswest.msn.net


--
Cordialement
Yanick
MVP pour Visual Basic