MSSQL @@IDENTITY richtig anwenden?

Dolphon

Erfahrenes Mitglied
Hi,

ich würde gerne von dem gerade eingetragenen Datensatz die IDENTITY herausbekommen. Unter MYSQL gibt es ja eine extra Funtkion dafür. Unter MSSQL gibt es @@IDENTITY oder auch scope_identity().

Leider habe ich damit Probleme die Daten des gerade eingelesen Datensatzes direkt nach dem Insert wieder auszugeben.
Code:
Fehelermeldung: odbc_result(): No tuples available at this result index in
Hier das Beispiel:

PHP:
if ($dsn=="flsincsql") { //wenn es sich um MSSQL handelt
		$sqlset="set dateformat YMD";  
		$xx=odbc_exec($conn,$sqlset);
		$sqlins="INSERT INTO Incidents (Incident,Aktion,Aufwand,Datum,Vermerk,Kategorie,Bearbeiter,Reklamation,Incidentstatus,[Direktlösung],[Rekla gerechtfertigt]) values ('".$incident."','".$aktion."','".$aufwand."','".$setdate."','".$vermerk."','".$kategorie."','".$nimbusid."',".$reklset.",'".$status."',".$direktset.",".$reklgerechtset.");
		SELECT * FROM Incidents WHERE (ID = @@IDENTITY)";
	}else{ //ansonsten Access
		$sqlins="INSERT INTO Incidents (Incident,Aktion,Aufwand,Datum,Vermerk,Kategorie,Bearbeiter,Reklamation,Incidentstatus,[Direktlösung],[Rekla gerechtfertigt]) values ('".$incident."','".$aktion."','".$aufwand."','".$setdate."','".$vermerk."','".$kategorie."','".$nimbusid."',".$reklset.",'".$status."',".$direktset.",".$reklgerechtset.")";
	}
	
	$resins=odbc_exec($conn, $sqlins)or die("Datensatz konnte nicht gespeichert werden<br>".odbc_error($conn)." - ".odbc_errormsg($conn).""); 
	
	echo "<h2>Incident ".$incident." wurde erfolgreich eingetragen</h2>";
	
	
	if ($dsn=="flsincsql") {
		//$sql="SELECT * FROM Incidents WHERE Bearbeiter='".$bearbeiter."' AND Datum LIKE '".$setdate."%'";
		$result=$resins;
		
	}else{
		$sql="SELECT * FROM Incidents WHERE Bearbeiter='".$bearbeiter."' AND Datum=#".$setdate."#";
		$result=odbc_exec($conn,$sql);
	}
......
echo "<td>".odbc_result($result,"Incident")."</td>";
......

Für einen Tip wäre ich dankbar!
 
Im MSSQL wäre es :
Code:
SELECT ID = @@IDENTITY
oder wenn du es mit ScopeIdentity machen möchtest
Code:
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]
 
Zurück