Auto-Inc-Wert eines gerade angelegten Datensatzes bekommen.

Kai008

Erfahrenes Mitglied
Ich habe mich gefragt, ob ich den Auto-Incrementen ID-Wert eines Datensatzes bekommen kann, nach dem ich ihm angelegt habe. Natürlich kann ich für den Zeitraum des Zugriffes andere Zugriffe blockieren, und den letzten Satz wieder auslesen, aber das scheint mir doch echt auch für meine Verhältnisse ein wenig zu unsauber zu sein. Auch den Wert, wo die Auto-Inc.gerade steht (glaube, unter MySQL ist das zumindest möglich) fände ich ein wenig umständlich. Kennt da vielleicht jemand einen einfachen Weg?

Ich verwende Access.
 
Ich hab grad keine Lust die Windows VM hochzufahren, um es zu testen, aber versuche mal nach dem INSERT folgendes
SQL:
SELECT @@identity
 
Danke, aber ich bekomme immer den Fehler "[Microsoft][ODBC Driver Manager] Ungültiger Deskriptorindex".

Main Source. Der Fehler tritt in der Zeile von getString() auf. Ich wüsste aber nicht, wie man an die Daten sonst rankommen könnte.
Java:
public String executeQueryStatment(String sql, int columnIndex)
{
	String s = null;

	synchronized (LOOK_OBJECT)
	{
		try
		{
			Statement statement = dbConnection.createStatement();
			ResultSet resultSet = statement.executeQuery(sql);
			s = resultSet.getString(columnIndex);
			resultSet.close();
			statement.close();
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
	return(s);
}
 
Geht glaub in MS Access über ODBC nicht...

Mir kommt nur eine Lösung mit einem Workaround in den Sinn.
  1. Dar Tabelle ein Feld hinzufügen (zB. INSERT_KEY)
  2. Den INSERT_KEY beim Insert() mit einem Rand-Wert aus dem Code befüllen
  3. Die ID mit 'SELECT id FROM myTable WHERE insert_key = meinKey' auslesen
  4. ggf. das Feld INSERT_KEY wieder auf NULL setzen.
 
Zurück