Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: top id problema

  1. #1

    top id problema

    Salve ...questo pezzo di codice non mi prende l'ultimo id inserito nella tabella del database...(mi prende il primo) e poi inserirlo nel cookies..perchè?




    if Request.cookies("www.tangrediworldnotes.com")("idu tente")="" then

    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/ordina2.mdb")
    sSql = "SELECT TOP 1 ID FROM tabbanconote ORDER BY ID DESC"
    Set rs=server.CreateObject("ADODB.Recordset")
    rs.Open "tabbanconote",conn,3,3

    idutente=rs("id")
    response.cookies("www.tangrediworldnotes.com")("id utente")= idutente
    rs.Close
    Set rs = Nothing
    'Chiudo la connessione al database e libero la memoria
    conn.Close
    Set conn = Nothing

    end if


    GRAZIE

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Lo script è giusto... mi pare strano...

    Roby

  3. #3
    ma id è un campo contatore?

  4. #4
    Per l'ultimo ID consiglio @@IDENTITY.

  5. #5
    puoi anche evitare di fare TOP 1
    basta che fai
    select id from tabella order by id desc
    tanto non c'è nessun ciclo e ti stampa il primo id che trova in ordine decrescente...

    senò fai come ha detto weppos
    Ah, Jedis! I had no ideas! What can i do for you, honored Jedis?

    I'm not Jedi. I'm a guy with a lighsaber and a few questions.

  6. #6
    Originariamente inviato da Killer99
    puoi anche evitare di fare TOP 1
    basta che fai
    select id from tabella order by id desc
    tanto non c'è nessun ciclo e ti stampa il primo id che trova in ordine decrescente...

    senò fai come ha detto weppos
    ma perchè dovrebbe tirar fuori XXXX record quando top 1 serve per ricavarne solo uno?

  7. #7

    ma come ho detto io, tira fuori solo 1 record... il primo che trova...
    Ah, Jedis! I had no ideas! What can i do for you, honored Jedis?

    I'm not Jedi. I'm a guy with a lighsaber and a few questions.

  8. #8
    Grazie ragazzi per l'aiuto, io ho usato:
    codice:
    if Request.cookies("www.tangrediworldnotes.com")("idutente")="" then
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/ordina2.mdb")
    sSql = "SELECT ID FROM tabbanconote ORDER BY ID DESC"
    Set rs=server.CreateObject("ADODB.Recordset")
    rs.Open sSql, conn, 3, 3
    
    idutente=rs("id")
    response.cookies("www.tangrediworldnotes.com")("idutente")= idutente
    rs.Close
          Set rs = Nothing
          'Chiudo la connessione al database e libero la memoria
          conn.Close 
          Set conn = Nothing
    end if
    Funziona...ma a volte succede che se due (o più) utenti contemporaneamente cercano di prendere l'ultimo id ..gli capita lo stesso!Mi hanno detto che che si può risolvere con @@IDENTITY....MA COME?

  9. #9
    ?!?!?!?
    riassumiamo...
    il tuo problema è:

    un utente fa ina insert nel DB, e subito dopo deve recuperare l'id della insert appena efettuata


    giusto?!?!?

    se è cos'ì in tal caso, aggiungi una bella where con il nome utente, e i dati contenuti in un campo, ovviamente devi selezionare un campo dove sai che i dati sono diversi, es se hai un campo data, non credo sia il caso di usarlo...

    se non è questo il caso, esplica meglio il tuo problema dalla radice

    [mii come parlo bene... ]
    Ah, Jedis! I had no ideas! What can i do for you, honored Jedis?

    I'm not Jedi. I'm a guy with a lighsaber and a few questions.

  10. #10
    Allora mi spiego meglio..
    Sto creando un carrello dove ogni utente inserisci qualcosa all'interno. Quando l'utente compra qualche pezzo viene incrementato il database "ordina2", nel particolare: se è il primo acquisto (me ne accorgo con if ...se ha il cookies) allora, per identificare ogni utente, prenderò l'ultimo id del database "ordina2" (che sicuramente nessuno avrà) e incremento il database con il pezzo comprato. Se un altro utente entrerà dopo e farà il primo acquisto allora la sua identificazione sarà riferita sempre prendendo l'ultimo id (cioè l'id del pezzo che ha incrementato l'utente precedente). Con questo sistema ogni utente sarà identificato in modo differente e quindi fare altri acquisti in tranquillità.
    Ma può succedere che se due utenti contemporaneamente fanno la loro prima ordinazione si identificheranno con l'ultimo stesso id.
    COME FACCIO A FAR FINIRE L'OPERAZIONE DI UN UTENTE PER POI PROCEDERE CON L'ALTRO UTENTE IN MODO TALE DA NON CREARE ERRORI?

    GRAZIE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.