+ Rispondi alla Discussione
Risultati da 1 a 18 di 18

Eliminare voce da db

Ultimo Messaggio di djjunior il:
  1. #1
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35

    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.

  2. #2
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    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ì:

    Codice:
    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.

  3. #3
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    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.

  4. #4
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    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?

  5. #5
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    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

  6. #6
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    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.

  7. #7
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    Grazie. Potresti farmi un esempio pratico? Non saprei come partire. Grazie

  8. #8
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    Dovrebbe essere qualcosa di simile
    Codice:
    Function DeleteFromArray(text,index)
    Dim r As String
    Dim i As Int
    a=Split(text, ",") i=0 for each x in a
    If i <> index Then
    r = r & x & ","
    End If i = i + 1
    next DeleteFromArray = r
    End Function
    Non ho controllato la sintassi, vbScript non lo uso più da anni e non me lo ricordo più, faccio anche un po' confusione con VB

    Spero possa aiutarti comunque
    Ultima modifica di artcava; 04-04-14 alle 00:50 Motivo: Errore madornale nello script di esempio

  9. #9
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    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.

  10. #10
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    Nessun aiuto?

  11. #11
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    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...

  12. #12
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    Allora i dati arrivano dal querystring e devo cancellarli dal db. Grazie

  13. #13
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    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?

  14. #14
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    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!

  15. #15
    Moderatore L'avatar di artcava
    Data Registrazione
    Dec 2006
    Località
    Torino
    Messaggi
    284
    Segui artcava su Twitter Aggiungi artcava su Google+ Aggiungi artcava su Facebook Aggiungi artcava su Linkedin Visita il canale Youtube di artcava
    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:

    Codice:
    Function SearchFromArray(text,index)
    Dim i As Int
    
    a=Split(text, ",")
    i=0
    for each x in a
    If i = index Then
    SearchFromArray = x
    End If
    i = i + 1
    next
    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...

  16. #16
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    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:
    Codice:
    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.

  17. #17
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    Ho provato a fare questo!
    Codice:
    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.

  18. #18
    User
    Data Registrazione
    Aug 2008
    Messaggi
    35
    Nessun aiuto???

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.