120 messaggi dal 01 marzo 2002
Stavo cercando di capire come eliminare in una sola volta
i RS contenuti in piu' TABLE del mio DB

ho provato in questo modo:

<%

Set con_STRING = Server.CreateObject("ADODB.Connection")
con_STRING.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
& Server.MapPath("./miodb.mdb")

Dim rs_delete
Dim rs_delete_cmd
Dim rs_delete_numRows
Set rs_delete_cmd = Server.CreateObject ("ADODB.Command")
rs_delete_cmd.ActiveConnection = con_STRING
rs_delete_cmd.CommandText = "DELETE FROM uno"
rs_delete_cmd.CommandText = "DELETE FROM due"
rs_delete_cmd.CommandText = "DELETE FROM tre"
rs_delete_cmd.Prepared = true
Set rs_delete = rs_delete_cmd.Execute
rs_delete_numRows = 0
%>
...
<%
Set rs_delete = Nothing
%>

Sembra che funzioni solo in parte,
visto che non elimina tutti i RS
dalle tabelle
O meglio alcune tabelle sembrano non accorgersene proprio.

Leggevo su alcuni comandi SQL che farebbero meglio il lavoro
a cui sono tesa, ed ho provato anche:

<%
rs_delete_cmd.CommandText = "drop TABLE, uno"
%>

ma niente da fare !!

--
R@m
^_^
678 messaggi dal 12 maggio 2001
www.idioteca.it
ciao, ma tu vuoi eliminare i dati o rimuovere definitivamente le tabelle?

In ogni caso, mi sembra di capire che dal tuo esempio elimini solo i dati dell'ultima tabella e penso per il semplice fatto che tu "riscrivi" più volte il commandtext, sovrascrivendelo alla fine.

Prova a sostituire queste righe:
rs_delete_cmd.CommandText = "DELETE FROM uno"
rs_delete_cmd.CommandText = "DELETE FROM due"
rs_delete_cmd.CommandText = "DELETE FROM tre"
con questa:
rs_delete_cmd.CommandText = "DELETE FROM uno; DELETE FROM due;DELETE FROM tre"
ciao
120 messaggi dal 01 marzo 2002
Ciao,
mi farebbe comodo utilizzare il metodo DROP che a quanto ho capito non elimina i dati ma riporta le tabelle allo stato iniziale.

tornando al metodo DELETE ho provato ma mi restituisce:

Caratteri non previsti dopo la fine dell'istruzione SQL.
riga:
Set rs_delete = rs_delete_cmd.Execute
Modificato da R@m il 30 gennaio 2012 14.54 -

--
R@m
^_^
678 messaggi dal 12 maggio 2001
www.idioteca.it
Allora invece del DROP direi che puoi usare un TRUNCATE.
TRUNCATE tabella1; TRUNCATE tabella2, TRUNCATE tabella3;
Per il tuo problema, mi sembra strano, ma non lavorando in ASP classico da tantissimo tempo ormai, non vorrei che il problema stia proprio in questo... o che voglia anche il punto e virgola finale? Non credo perchè non dovrebbe essere obbligatorio... ma tentare non nuoce :-)
ciao

P.s.
dopo aver fatto una ricerca veloce e dato che ho proprio rimosso ogni cosa di ASP (quasi nauseato da quanto ne ho visto)... ho trovato un esempio che mostra come usare il metodo execute che è un po' diverso dal tuo...

Dim strSQL strSQL = "DELETE FROM clienti" 
DBConn.Execute strSQL 
Dove DBConn è la tua connessione, nel tuo caso dovrebbe essere con_STRING.
Prova quindi a fare così:

Set con_STRING = Server.CreateObject("ADODB.Connection")
con_STRING.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
& Server.MapPath("./miodb.mdb")
strSQL= "TRUNCATE tabella1; TRUNCATE tabella2, TRUNCATE tabella3;"
Set rs_delete = con_STRING.Execute strSQL

Modificato da giangi_77 il 30 gennaio 2012 15.54 -
120 messaggi dal 01 marzo 2002
:)

Avevo gia' provato il TRUNCATE ..
niente da fare

Per i punto e virgola le ho provate tutte ..

Pazienza.
Grazie lo stesso

--
R@m
^_^
678 messaggi dal 12 maggio 2001
www.idioteca.it
Per il TRUNCATE, è proprio quello che devi usare, il DROP dovrebbe rimuovere del tutto la tabella dal tuo database e non credo sia quello che tu voglia.
ciao
120 messaggi dal 01 marzo 2002
Si .. infatti .. il TRUNCATE e' quello che cercavo di utilizzare,
ma ogni volta che lo uso mi da un errore:

Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.

Temo bisogni utilizzare una sorta di "STORE PROCEDURE".
Modificato da R@m il 30 gennaio 2012 18.46 -

--
R@m
^_^

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.