Lina Medlem sedan jan. 2001 332 inlägg Frågan 15 aug. 2001 09:10 #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!
P PatrikB Medlem sedan mars 2000 2 836 inlägg 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å*
Lina Medlem sedan jan. 2001 332 inlägg 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]
P PatrikB Medlem sedan mars 2000 2 836 inlägg 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å*
E emission Medlem sedan dec. 1999 6 721 inlägg Jodå, det är det. Koden ser helt okej ut, men det kan strula med vissa versioner av JET OLEDB.
Har du inkluderat adovbs.inc?
Lina Medlem sedan jan. 2001 332 inlägg 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!
Lina Medlem sedan jan. 2001 332 inlägg 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!
Lina Medlem sedan jan. 2001 332 inlägg 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!
Brimba Medlem sedan dec. 1999 5 874 inlägg 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]
Lina Medlem sedan jan. 2001 332 inlägg 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!
E emission Medlem sedan dec. 1999 6 721 inlägg 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.
Brimba Medlem sedan dec. 1999 5 874 inlägg Skall du inte köra adOpenKeyset istället för adOpenForwardOnly?
Brimba Medlem sedan dec. 1999 5 874 inlägg PersonID, är en räknare förmodar jag?
Herman Medlem sedan maj 2001 431 inlägg 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
Lina Medlem sedan jan. 2001 332 inlägg 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!
Lina Medlem sedan jan. 2001 332 inlägg 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]
Brimba Medlem sedan dec. 1999 5 874 inlägg 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?
Lina Medlem sedan jan. 2001 332 inlägg Å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!