1.818 messaggi dal 21 giugno 2001
Contributi
Se utilizzi query di comando per aggiornare il db, è corretto quanto scritto da Rome.

Se invece ricorri integralmente ad ADO puoi seguire il consiglio di Manuk (consiglio che vale, oltre che per MSSQLserver7, anche per Jet 4 e Access 2000).

In ogni caso l'impossibilità di recuperare l'id del nuovo record potrebbe dipendere dal fatto che nel tuo recordset ADO, il nuovo record non è ancora presente. Prova a chiudere il recordset e a riaprirlo con la query suggerita da Rome.

E magari postaci il codice in cui setti i cursori ADO

Cia Cia
hyppos

www.teatrolabaracca.com

|-----------------------------------------|
| in giro torte solo ciclos et rotor igni |
|-----------------------------------------|

Modificato - hyppos - 17 Lug 2001 13:55:48

hyppos
<code> in giro torte sol ciclos et rotor igni</code>
137 messaggi dal 06 settembre 2002
Io sono convinto, però, che leggere il numero maggiore di ID dopo l'inserimento del record non è un sistema che dà la certezza che l'ID maggiore sia quello del record da me inserito.

Se ad esempio 10 persone cercano di aggiungere un record contemporaneamente, è possibile che l'ultimo ID che vado a leggere subito dopo l'inserimento sia quello di uno degli altri 9 che ne hanno inserito uno nello stesso momento!

Secondo me è un aspetto importante da valutare, chiaramente dipende dal numero di utenti, ma non vuol dire, se 2 si trovano a fare la stessa cosa nello stesso momento... è giusto pensarci. Secondo me.

Davide Pongan

Davide Pongan
www.pongan.com
902 messaggi dal 19 aprile 2001
infatti non ti da la sicurezza di avere il dato corretto. Ti abbiamo indicato tutte le strade percorribili:
1) transaction
2) usare addnew update e leggerlo subito prima di spostarsi di record


*****************************
Traspi.net - magazine on line
http://www.traspi.net
Da Torino al mondo Internet il nuovo magazine on line di cultura, creatività, informazione e servizi.
mailto:webmaster@traspi.net
*****************************

Traspi.net
Da Torino al mondo Internet il magazine di cultura, creatività e informazione.
www.traspi.net
Mauro Tortone
webmaster@traspi.net
499 messaggi dal 14 luglio 2001
comunque come dice ueilat la certezza al 100% non l'hai, ma è alquanto remoto che 2 persone nello stesso preciso istante a livello di nano secondi facciano la stessa operazione il che le probabilità di una inprecisione di dati sono veramente trascurabili.






enzo

enzo
www.dnetware.it
137 messaggi dal 06 settembre 2002
Dipende da quanta sicurezza hai bisogno...
io, in ogni caso, cerco sempre il massimo, così se oggi serve il massimo della sicurezza ce l'ho, ma anche se oggi non serve e potrebbe servire un giorno... sarà già tutto a posto. A me piace lavorare così...

Davide Pongan

Davide Pongan
www.pongan.com
Ecco come fare:
doppio passaggio: nel primo, esegui l'INSERT INTO e nel secondo recuperi il valore massimo del campo ID della tabella:

&lt;%

set cn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")

cn.open &lt;stringa_connessione&gt;

cn.begintrans

cn.execute "INSERT INTO &lt;tabella&gt; (campo1,campo2...) VALUES (valore1,valore2...)"

set rs=cn.execute("SELECT MAX(ID) AS XID FROM &lt;tabella&gt;")

NuovoID=rs("XID")

cn.committrans

rs.close
cn.close

set rs=nothing
set cn=nothing

%&gt;



synology italia
902 messaggi dal 19 aprile 2001
Confermo michael...
anch'io in questi giorni avevo la necessita' di leggere l'id appena generato.
ho scritto un asp molto simile a quello di michael. Facile e sicuro.
Ciao

*****************************
Traspi.net - magazine on line
http://www.traspi.net
Da Torino al mondo Internet il nuovo magazine on line di cultura, creatività, informazione e servizi.
mailto:webmaster@traspi.net
*****************************

Traspi.net
Da Torino al mondo Internet il magazine di cultura, creatività e informazione.
www.traspi.net
Mauro Tortone
webmaster@traspi.net

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.