Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
La Fondazione Chips-IT ha presentato a Pavia il piano strategico 2026-2028 per rafforzare l'ecosistema italiano dei semiconduttori. Con un focus su ricerca, design, talenti e infrastrutture, la Fondazione punta a consolidare il ruolo dell'Italia nel Chips Act europeo, sostenendo innovazione, collaborazione industriale e sovranità tecnologica.
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Al Museo Alfa Romeo di Arese, Nutanix ha riunito clienti, partner ed esperti per .Next On Tour Italia e per mostrare come l’infrastruttura hybrid multicloud possa diventare il fondamento dell’innovazione, con una piattaforma capace di unificare applicazioni tradizionali, moderne architetture cloud-native e nuovi scenari basati sull’intelligenza artificiale
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti
Il Lenovo LOQ 15i Gen 10 (15IRX10) offre prestazioni convincenti grazie al Core i7-13650HX e alla RTX 5060 Laptop a 100W, mantenendo un prezzo competitivo tra 1100 e 1300 euro. Costruzione solida, buon display e ampia espandibilità lo rendono una scelta equilibrata per chi cerca un notebook gaming accessibile ma moderno.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-08-2011, 12:26   #1
Lu Pier
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 24
[VB.NET + ACCESS] Conoscere ID dopo un INSERT

Salve,
sto scrivendo un programmino in BASIC e utilizzo come database ACCESS.
Dopo aver lanciato un query tipo la seguente:

Codice:
sql = "INSERT INTO tabella" _
            & "(campo) " _
            & "VALUES " _
            & "(@campo)"
Vorrei sapere l'ID creato senza lanciare un altra query.

è possibile?
Lu Pier è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2011, 00:18   #2
jackk87
Senior Member
 
Iscritto dal: Jan 2007
Messaggi: 404
Quote:
Originariamente inviato da Lu Pier Guarda i messaggi
Salve,
sto scrivendo un programmino in BASIC e utilizzo come database ACCESS.
Dopo aver lanciato un query tipo la seguente:

Codice:
sql = "INSERT INTO tabella" _
            & "(campo) " _
            & "VALUES " _
            & "(@campo)"
Vorrei sapere l'ID creato senza lanciare un altra query.

è possibile?
Ciao che io so non esiste niente per ricavarlo devi fare un'altra query tipo io lo faccio con MAX(id) e in sql con le transazioni in modo che se l'insert non va a buon fine la seconda query non la esegue e non avrai un id sbagliato ma questo puoi risolverlo catturando gli errori..
jackk87 è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2011, 08:48   #3
Lu Pier
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 24
Quote:
Originariamente inviato da jackk87 Guarda i messaggi
Ciao che io so non esiste niente per ricavarlo devi fare un'altra query tipo io lo faccio con MAX(id) e in sql con le transazioni in modo che se l'insert non va a buon fine la seconda query non la esegue e non avrai un id sbagliato ma questo puoi risolverlo catturando gli errori..
Mi hanno consigliato di fare cosi

Codice:
Dim sql As String = "INSERT INTO sn " _
           & "(codice) " _
           & "VALUES " _
           & "(@codice)"

  cn.Open()

  Using MySqlCommand As New OleDbCommand(sql, cn)
   MySqlCommand.Parameters.AddWithValue("@codice", codice)
   MySqlCommand.ExecuteNonQuery()
  End Using

  sql = "SELECT MAX(id) FROM sn"
  Dim newID As Integer = 0
  Using MySqlCommand As New OleDbCommand(sql, cn)
   newID = CType(MySqlCommand.ExecuteScalar(), Integer)
  End Using
Ed effettivamente funziona, ma stavo valutando di passare da access a sql server per alte funzionalità.
Lu Pier è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2011, 21:06   #4
jackk87
Senior Member
 
Iscritto dal: Jan 2007
Messaggi: 404
Quote:
Originariamente inviato da Lu Pier Guarda i messaggi
Mi hanno consigliato di fare cosi

Codice:
Dim sql As String = "INSERT INTO sn " _
           & "(codice) " _
           & "VALUES " _
           & "(@codice)"

  cn.Open()

  Using MySqlCommand As New OleDbCommand(sql, cn)
   MySqlCommand.Parameters.AddWithValue("@codice", codice)
   MySqlCommand.ExecuteNonQuery()
  End Using

  sql = "SELECT MAX(id) FROM sn"
  Dim newID As Integer = 0
  Using MySqlCommand As New OleDbCommand(sql, cn)
   newID = CType(MySqlCommand.ExecuteScalar(), Integer)
  End Using
Ed effettivamente funziona, ma stavo valutando di passare da access a sql server per alte funzionalità.
Ciao è la stessa cosa che ti ho detto io solo come ti hanno detto usi i paramiters e va bene per i vincoli ecc...però se per esempio l'insert non va a buon fine per qualsiasi motivo tu avrai l'id non dell'ultimo inserito ma di quello prima quindi se passi ad sql utilizza le transazioni così se l'insert non va a buon fine o il select tutto ritorna come prima come se non fosse successo niente
jackk87 è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2011, 21:55   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Puoi usare @@identity
http://support.microsoft.com/kb/815629
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica Fondazione Chips-IT, l'Italia alla riscossa nei ...
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud Nutanix: innovazione, semplicità e IA al ...
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il n...
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
NVIDIA H200 in Cina, ma è solo un...
Addio allo Studio Gainax, dopo 42 anni c...
Milly Alcock è Supergirl nel prim...
Veeam accelera sulla data resilience: da...
Klarna arriva su Apple Pay anche in Ital...
Samsung ha in programma tre nuovi Galaxy...
Amazon, il destino di un reso: il viaggi...
realme Buds Clip: auricolari open-ear a ...
Proiettore Full HD con autofocus e WiFi ...
Il primo ministro britannico annuncia in...
Via lo stress da regali: tutte le promoz...
iliad regala centinaia di giga con iliad...
Smartwatch top sotto i 75€? AMAZFIT Acti...
Spotify lancia le Prompted Playlists: pl...
Lenovo amplia il portafoglio di prodotti...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v