webForumDet fria alternativet

Hämta id från öppet rs

ASP

18 svar · 291 visningar · startad av Lina

Medlem sedan jan. 2001332 inlägg
Frågan#1

Jahapp, så var det dags igen...

Så här ser koden ut:

      set rsUsers = Server.CreateObject("ADODB.Recordset")
      rsUsers.Open "Person", Conn, adOpenForwardOnly, adLockOptimistic, adCmdTable
      rsUsers.Filter = "EMailAddress = '" & Request.Form("email") & "'"

      if rsUsers.EOF then
      rsUsers.AddNew

      rsUsers("NickName") = Request.Form("NickName")
      rsUsers("Surname") = Request.Form("LastName")
      rsUsers("FirstName") = Request.Form("FirstName")
      rsUsers("EMailAddress") = Request.Form("email")
      rsUsers("Password") = Request.Form("password")
      rsUsers("StreetAddress1") = Request.Form("Address1")
      rsUsers("StreetAddress2") = Request.Form("Address2")
      rsUsers("State") = Request.Form("State")
      rsUsers("PostalCode") = Request.Form("PostalCode")
      rsUsers("Country") = Request.Form("Country")
      rsUsers("Active") = True
      rsUsers("LastLogin") = Now

      rsUsers.Update

      Else
      Response.Redirect "registrer.asp?takenMailadr=True"
      End If

	  	Response.Write(rsUsers("PersonID"))
		strHulePersonID = rsUsers("PersonID")
		Response.Write(strHulePersonID)

Problemet jag har är att jag när jag har skapat den nya posten inte får upp nåt id....

Eftersom ag inte är så jättehaj på det här med öppet rs så kanske det finna nån som kan hjälpa mig....

Eller kan man inte göra så här???

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan mars 20002 836 inlägg
#2

PersonID måste ligga med i SQLfrågan för att du ska kunna få ut en post med det nyss inlaggda id'et. Gör det inte det finns det ingen post i recordsetet som heter - PersonID (rsUsers("PersonID"))

cya,
PatrikB

------------------
*så kan det gå när inte haspen är på*

Medlem sedan jan. 2001332 inlägg
#3

Hmmm...

Nu blir jag förvirrad ännu mer....

Erkänner att helt plötsligt fattar jag noll....

Den koden jag visade i mitt förra inlägg är den kod jag har...
Det är inte jag som har gjort koden från början tyvärr utan jag ska bygga på den lite till nu bara....
Det är ju dock inte så bara tydligen...

Jag ser ingen SQL-sats alls....

Trodde att den hämtade upp alla fält i tabellen Person med raden:

      rsUsers.Open "Person", Conn, adOpenForwardOnly, adLockOptimistic, adCmdTable

Är det inte så????

:OO

------------------
Du lever bara en gång och den gången är nu!

[Redigerat av Lina den 15 aug 2001]

Medlem sedan mars 20002 836 inlägg
#4

he, he .... jo, så är det och den koden du har efter if-satsen "bör" funka och innehålla id'et för den senaste posten.

om du kör ms-sql eller access2k så kan du testa med detta:

strSQLid = "SELECT @@IDENTITY"
Set objRSid = Conn.Execute(strSQLid)
strHulePersonID = objRSid(0)
Set objRSid = Nothing

cya,
PatrikB

------------------
*så kan det gå när inte haspen är på*

Medlem sedan dec. 19996 721 inlägg
#5

Jodå, det är det. Koden ser helt okej ut, men det kan strula med vissa versioner av JET OLEDB.

Har du inkluderat adovbs.inc?

Medlem sedan jan. 2001332 inlägg
#6

Nä, den filen verkar inte vara inkluderad...

Men det underligaste är ju att detta har funkat innan i koden och jag kan inte förstå varför det helt plötsligt skulle sluta funka....

Men men.... Jag ska inte vara den som är den...
Testar att inkludera den då....
:e

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan jan. 2001332 inlägg
#7

Jahapp... Nu har jag testat att infoga den filen också det hjälpte ändå inte... :(

Börjar bli lite irriterad på det här nu...

De koderna jag labbar med är två filer som skall läggas ihop till en...
De fungerar var och en för sig och i dessa filer används öppet rs för att skapa nya poster...
Jag får i ursprungsfilen med id:t, men när jag läggar ihop dom så struntar den i id:t trots att jag inte ändrt nån kod...
Bara lagt ihop filerna som sagt...

Jag måste lägga ihop dessa filer för vi har märkt att det ibland klickar i redirecten dem emellan........

Snälla, hjälp mig!

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan jan. 2001332 inlägg
#8

Ingen som har nåt förslag????

Har jobbat lite med detta efter och med hjälp av en loop skriver jag ut alla values i rsUsers.Fields

Då får jag upp alla fälten, men id:t är tomt...

Även om jag har gjort en ny post med hjälp av rsUsers.AddNew och rsUsers.Update så ska väl id:t finnas i recordsetet eller hur funkar det?

Nån som har nåt förslag på en bättre lösning?

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan dec. 19995 874 inlägg
#9
set rsUsers = Server.CreateObject("ADODB.Recordset")
rsUsers.Open "Person", Conn, adOpenForwardOnly, adLockOptimistic, adCmdTable
rsUsers.Filter = "EMailAddress = '" & Request.Form("email") & "'"
if rsUsers.EOF then
rsUsers.AddNew

rsUsers("NickName") = Request.Form("NickName")
rsUsers("Surname") = Request.Form("LastName")
rsUsers("FirstName") = Request.Form("FirstName")
rsUsers("EMailAddress") = Request.Form("email")
rsUsers("Password") = Request.Form("password")
rsUsers("StreetAddress1") = Request.Form("Address1")
rsUsers("StreetAddress2") = Request.Form("Address2")
rsUsers("State") = Request.Form("State")
rsUsers("PostalCode") = Request.Form("PostalCode")
rsUsers("Country") = Request.Form("Country")
rsUsers("Active") = True
rsUsers("LastLogin") = Now

rsUsers.Update

session("PersonID") = rsUsers("PersonID")

Else
Response.Redirect "registrer.asp?takenMailadr=True"
End If

Response.Write(session("PersonID"))
strHulePersonID = session("PersonID")
Response.Write(strHulePersonID)

...kanske?

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

[Redigerat av Brimba den 16 aug 2001]

Medlem sedan jan. 2001332 inlägg
#10

Tack för försöket Brimba...

Men det är just det att jag kan inte göra något alls med id:t....

Får inte fram nåt oavsett vad jag ska göra eller var jag ska göra det...

Ser att det lagras ett id i databasen, men jag kan inte få fram det via mitt recordset....

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan dec. 19996 721 inlägg
#11

Det är säkert ett busenkelt fel, men jag kan inte se det.....

Prova att lägga in en rsUsers.Resync eller rsUsers.Movelast efter update.

Medlem sedan dec. 19995 874 inlägg
#12

Skall du inte köra adOpenKeyset istället för adOpenForwardOnly?

Medlem sedan dec. 19995 874 inlägg
#13

PersonID, är en räknare förmodar jag?

Medlem sedan maj 2001431 inlägg
#14

Jag vet inte vilken databas du använder. Vissa rdbms kan inte returnera id:n. Kör du access aller ms sql torde det räcka med att byta cursor. Prova med adOpenDynamic.

------------------
En eller annan godbit från pannan

Medlem sedan jan. 2001332 inlägg
#15

Skriver jag rsUsers.MoveLast Så får jag fel:

Rowset does not support fetching Microsoft OLE DB Provider for SQL Server (0x80040E24)
Rowset does not support fetching backward.

och skriver jag rsUsers.Resync så får jag felet:
ADODB.Recordset (0x800A0CB3)
Object or provider is not capable of performing requested operation

Ska prova Brimbas förslag med...

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan jan. 2001332 inlägg
#16

Har bytt cursor och testat era förslag, men jag får ändå bara massa fel....

AdOpenKeyset:
Microsoft OLE DB Provider for SQL Server (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done

adOpenDynamic:
Blir det inget fel på... Men jag får inte fram nåt id ändå...
:(

Det jag inte fattar är hur den befintliga sidan som koden kommer ifrån kan fungera...
Jag har ju inte ändrat nåt ju....

------------------
Du lever bara en gång och den gången är nu!

[Redigerat av Lina den 16 aug 2001]

Medlem sedan dec. 19995 874 inlägg
#17

Jag kör såhär, och det fungerar perfekt.
Varför det inte fungerar för dig kan jag inte svara på...tyvärr...

	Set RSObj = Server.CreateObject("ADODB.Recordset")
	RSObj.ActiveConnection = Connection
	RSObj.CursorType = 1 ' adOpenKeyset
	RSObj.LockType = 3 'adLockOptimistic

	RSObj.Source = "Person"
	RSObj.Open
	
	RSObj.AddNew
	RSObj("Active") = True
	RSObj.Update
	Session("PersonID") = RSObj("PersonID")
	RSObj.Close

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

Medlem sedan jan. 2001332 inlägg
#18

Åhhhhh.....

Nu funkar det helt plötsligt...

Skrev in AdOpenKeyset en gång till och då fick jag upp id:t....

Fattar ingenting.... Men tack ändå alla...

Kram på er! :e

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan dec. 19995 874 inlägg
#19

weee :e

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)