SELECT IDENTITY@@ och replikationsid

.NET

2 svar · 276 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Trådstart#1

Tjenare.
Jag brukar använda en liknanade kodsnutt som den följande när jag tar fram senast insatta Id. Nu har jag satt mitt Id fält till Replikations Id och då kan jag inte få till det.... vad har jag gjort för fel?

[red]
public string RunQuerys(string SqlStatement)
{
	string identity;
	OleDbConnection con = Logic.Connection();
	try
	{
		OleDbCommand Command = new OleDbCommand(SqlStatement, con);
		Command.ExecuteNonQuery();
		Command.CommandText = "SELECT @@IDENTITY";
		OleDbDataReader dr = Command.ExecuteReader();
		if(dr.Read())
		{
			identity = Convert.ToString(dr[0]);
		}
		else
		{
			identity = string.Empty;
		}
	}
	finally
	{
		con.Close();
	}
	return identity;
}
[/red]

Vad som är konstigt är att jag får ut 0 ??

Jag kan ju tilläga att SqlStatementet som innehåller en Insert funkar...

mv icaaq

Medlem sedan juni 200032 967 inlägg
#2

Well...

Det beror på att @@IDENTITY bara returnerar värden för vanlig räknare.

Du får lägga till ett vanligt räknarfält i tabellen, hämta @@IDENTITY, och med hjälp av den hämta ut ditt replikerings-ID.

Mvh

Medlem sedan okt. 20005 273 inlägg
#3

hmmm ok..jobbigt ;)

mv icaaq

250 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)