- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Eliminare voce da db
-
Eliminare voce da db
Salve,
come si fa ad eliminare una voce da campi db?Tipo:
Campo NOME: franco, giovanni, nicola
Campo FORMATO: 10, 12, 14
Se voglio eliminare GIOVANNI e quindi il suo numero di riferimento cioè il 12 come posso fare?
Grazie
G.
-
Ciao djjunior, direi che dipende dal db, il linguaggio che devi utilizzare è genericamente chiamato SQL, che però ha le sue declinazioni in funzione appunto del db.
In generale funziona + o - così:DELETE FROM TABELLA WHERE FORMATO = 12
Dove TABELLA è la tabella in cui sono contenuti i nomi, e FORMATO dovrebbe essere il campo univoco che identifica quel nome.
Questo script poi lo devi far eseguire alla tua pagina attraverso un Provider in grado di colloquiare con il db, potrebbe essere ADO per i linguaggi come ASP oppure ADO.NET per ASP.NET o ancora LINQtoSQL o EntityFramework, ma per questa scelta bisognerebbe sapere anche quale piattaforma di sviluppo/linguaggio stai utilizzando...
Sperando di non aver aggiunto confusione al tuo dubbio ti auguro un buon lavoro.
-
Ciao t ringrazio x la tua risposta ma io nn devo cancellare il valore di un campo db access ma cancellare una voce presente in un campo. In un campo denominato NOME ci possono essere + voci che andrebbero successivamente splittate. Quindi intendo cancellare x esempio la terza voce d un campo tipo:
Campo:NOME
Valore:PAOLO, ANNA, MARCO
Campi:FORMATO
Valore:12, 14, 16
Ecco io dovrei eliminare per es: ANNA e il formato di rif cioè: 14.
Ecco, come si fa?
Grazie
G.
-
Scusa ma mi sono perso...
Non stiamo parlando di un db ma di un testo? La provenienza di questo testo non è quindi oggetto della domanda?
Allora il testo che hai a disposizione è contenuto in una variabile che si chiama NOME, visto che il contenuto è separato da virgola (,) puoi fare una split del testo ottenendo così un array, rimuovere l'elemento interessato, tenendo presente che l'array ha base 0 normalmente, ed infine eseguire una join dei valori restanti nella variabile di partenza o altra variabile dichiarata all'occorrenza...
E' questo che devi fare?
-
Si si è questo quello che devo fare! Pero il testo da eliminare può variare, diciamo che lo recupero da una request.querystring e devo cancellare contemporaneamente da 2 campi allo stesso punto. Tipo la terza voce separata da virgola!
Grazie
-
Allora ti consiglio di usare la Split, funzione descritta in questa pagina: Split
Mentre scorri l'array ricostruisci il testo aggiungendo la virgola (,) e conti le ricorsioni, quando arrivi alla terza la salti e prosegui con il resto.Lo stesso fai con l'altro parametro. Magari puoi costruire una funzione che lo fa prendendo in carico il parametro da scorrere e l'indice da saltare.
-
Grazie. Potresti farmi un esempio pratico? Non saprei come partire. Grazie
-
Dovrebbe essere qualcosa di simile
Function DeleteFromArray(text,index) Dim r As String Dim i As Int[INDENT]a=Split(text, ",") i=0 for each x in a [/INDENT] [INDENT=2]If i <> index Then[/INDENT] [INDENT=3]r = r & x & "," [/INDENT] [INDENT=2]End If i = i + 1[/INDENT] [INDENT]next DeleteFromArray = r[/INDENT] End Function
Non ho controllato la sintassi, vbScript non lo uso più da anni :bho: e non me lo ricordo più, faccio anche un po' confusione con VB
Spero possa aiutarti comunque
-
Grazie lo proverò anche sono ho capito bene come posso eliminare da 2 o più campi contemporaneamente il valore (diciamo il terzo per esempio) e implementarlo al mio db access. Grazie e scusami ma non mi + chiara proprio questa parte.
G.
-
Nessun aiuto?
-
Scusa ma non ti seguo nuovamente, i dati arrivano dal DB o dal QueryString? Se arrivano dal DB come mai hai elementi separati da virgola?
Comunque per eseguire l'operazione di cancellazione dell'elemento dall'elenco devi "chiamare" due volte DeleteFromArray passando prima i nomi e l'indice da eliminare e subito dopo i numeri e l'indice, indice che dovrà essere lo stesso di prima...
-
Allora i dati arrivano dal querystring e devo cancellarli dal db. Grazie
-
Continua a non essermi chiaro, che relazione c'è tra i dati del QueryString e quelli nel DB, come fai ad essere sicuro che il dato in una determinata posizione corrisponda a quella del DB?
-
La relazione che cè è il NOME che è univoco pertanto recuperando dal querystring il NOME di conseguenza in base alla posizione del nome si trova la posizione del formato! Ed effettuare la cancellazione d entrambi!
-
Quindi fammi capire se ho capito:
Nel QueryString hai un elenco di nomi separato da virgola!
Sai anche in quale posizione si trova il nome da eliminare, ma non qual'è e devi quindi trovarlo!Ecco come:
Function SearchFromArray(text,index) Dim i As Int [INDENT]a=Split(text, ",")[/INDENT] [INDENT]i=0[/INDENT] [INDENT]for each x in a[/INDENT] [INDENT=2]If i = index Then[/INDENT] [INDENT=3]SearchFromArray = x[/INDENT] [INDENT=2]End If[/INDENT] [INDENT=2]i = i + 1[/INDENT] [INDENT]next[/INDENT] End Function
Con la stessa funzione puoi anche trovare il FORMATO, passando il testo contenente i formati separati da virgola.
A questo punto però devi eliminarli dal DB e per questo devi utilizzare SQL come nella mia prima risposta...
-
In pratica ricevo un solo valore, dovrei fare tipo così per cancellare i 2 valori presenti alla stessa posizione nel campo db, non mi è chiaro questo passaggio:
**nome = request.querystring("file") formato = request.querystring("formato") Function SearchFromArray(nome,index) Dim i As Int a=Split(nome, ",") i=0 for each x in a If i = index Then SearchFromArray = x End If i = i + 1 next End Function **** Function SearchFromArray(formato,index) Dim i As Int a=Split(formato, ",") i=0 for each x in a If i = index Then SearchFromArray = x End If i = i + 1 next End Function**
Poi come faccio ad eliminarlo dalla query sql?
Ho db access?
Grazie 1000 per l'aiuto che mi stai dando.
G.
-
Ho provato a fare questo!
nome = request.querystring("file") function SearchFromArray(nome,index) a=Split(nome, ",") i=0 for each x in a If i = index Then SearchFromArray = x End If i = i + 1 sql = "DELETE * FROM ordini WHERE foto = " & x(i) Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sql, conn, 3, 3 next End Function
Almeno per eliminare un solo valore, ma io devo eliminare + valori collegati tra loro (il NOME e il FORMATO di riferimento)
Ma non elimina nulla.
Dove sbaglio?
Aiutatemi, grazie
G.
-
Nessun aiuto???