[ASP/SQL] new record

Pagina: 1
Acties:

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
hoi,

bij het aanmaken van een nieuwe record gebruik ik dit :

( van iemand gekregen )


set recordset = server.CreateObject("ADODB.recordset")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(Application("vroot") & "database\newuser.mdb")
strSQL = "select t.* , @@IDENTITY as UserID from tblnewuser as t"
recordset.open strSQL,strconn,1,2

nu heb ik 2 dingetjes :

1. hij blijft oneindig lang 'zoeken'?
2. hoe moet ik @@IDENTITY uitlezen?

Verwijderd

Op vrijdag 15 maart 2002 13:34 schreef burp2001 het volgende:
1. hij blijft oneindig lang 'zoeken'?
2. hoe moet ik @@IDENTITY uitlezen?
1) hij doet 'n select op je tabel tblnewuser hij insert dus *geen*records* en als die tabel veel data bevat kan die select best even duren idd.
2) zoals in de query al staat uitlezen als het veld userid.

Verwijderd

SQL moet zijn om de selecteren:
code:
1
SELECT @@IDENTITY  as UserID FROM tblnewuser;

Volgens mij is UserID dan het Identity-veld. Deze kun je dan uitlezen met:
code:
1
recordset("UserID")

Daarbij INSERT je hiermee geen record maar selecteer je alleen maar..

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
dus ik zou select moeten veranderen in insert ?

en het uitlezen als
request.recordset("userid") ?

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
wow, de kennis is aanwezig :)

okeee,, stel ik wil het beide doen, ik heb een pagina waarmee ik een nieuwe records invoeg, daarbij wil ik wel weten op welk userID hij dit gaat invoegen, ( userid is pri. key en autonummer )

Verwijderd

insert:
code:
1
INSERT INTO tabel (veld1, veld2) VALUES (waarde1, waarde2);

Maar waarom wil je een recordset uitlezen. Dat hoeft bij inserten helemaal niet. Waarschijnlijk vul je een aantal velden (INPUT TYPE's) in en die wil je in een tabel zetten?

Verwijderd

Op vrijdag 15 maart 2002 13:45 schreef burp2001 het volgende:
okeee,, stel ik wil het beide doen, ik heb een pagina waarmee ik een nieuwe records invoeg, daarbij wil ik wel weten op welk userID hij dit gaat invoegen, ( userid is pri. key en autonummer )
Invoegen kan simpel met INSERT INTO maar waarom wil je eerste weten op welk ID? Dat maakt toch niet uit want dat dient alleen als sleutel om bijv. later gegevens te wijzigen/opvragen.

Verwijderd

Doe eerst eens wat huiswerk voordat je zomaar code gaat gebruiken die je niet begrijpt? ;)

http://www.w3schools.com/asp/asp_intro.asp

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
Deze code heb ik ook maar gekregen :)
het invoegen van de waardes lukt wel, het uitlezen van de ID niet,

ik wil de id hebben om die daarna met een Response.redirect door te stuuren via de mail ( zo van Dit is er in de database ingevoegd:)


dit kan toch alleen maar met de ID ?!? anders zou ik de gehele string moeten doorzenden.. (overdreven?)

Verwijderd

Op vrijdag 15 maart 2002 14:00 schreef burp2001 het volgende:
ik wil de id hebben om die daarna met een Response.redirect door te stuuren via de mail ( zo van Dit is er in de database ingevoegd:)
Dit is een makkelijke oplossing maar je kunt toch gewoon na het inserten gelijk de mail versturen?
code:
1
2
3
4
sql = "INSERT INTO...."
strConn.Execute(sql)

Nu mailobject aanmaken en emailen..

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
zal ik voor de handigheid effkes de gehele pagina posten?



<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>

<%

set recordset = server.CreateObject("ADODB.recordset")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(Application("vroot") & "database\newuser.mdb")
strSQL = "INSERT t.* , @@IDENTITY as UserID from tblnewuser as t"
recordset.open strSQL,strconn,1,2

Recordset.addnew
recordset("GuiFirstname") = Request.Form("GuiFirstname")
recordset("GuiLastname") = Request.Form("GuiLastname")
recordset("GuiLocation") = Request.Form("GuiLocation")
recordset("GuiCountrycode") = Request.Form("GuiCountrycode")
recordset("GuiCompany")= Request.Form("GuiCompany")
recordset("GuiJobtitle") = Request.Form("GuiJobtitle")
recordset("GuiJobFunction") = Request.Form("GuiJobFunction")
recordset("GuiPhonenumber") = Request.Form("GuiPhonenumber")
recordset("GuiFaxnumber") = Request.Form("GuiFaxnumber")
recordset("GuiCostcenter") = Request.Form("GuiCostcenter")
recordset("GuiControlEntity") = Request.Form("GuiControlEntity")
recordset("GuiManager") = Request.Form("GuiManager")
recordset("GuiITManager") = Request.Form("GuiITManager")
recordset("GuiEmailAddress") = Request.Form("GuiEmailAddress")
recordset("ArNewUser") = Request.Form("ArNewUser")
recordset("ArTerminateuser") = Request.Form("ArTerminateuser")
recordset("ArTransferUser") = Request.Form("ArTransferUser")
recordset("ArChangeCostcenter") = Request.Form("ArChangeCostcenter")
recordset("Ucemployee") = Request.Form("Ucemployee")
recordset("UcContractor") = Request.Form("UcContractor")
recordset("UcBusinessPartner") = Request.Form("UcBusinessPartner")
recordset("UcDeveloper") = Request.Form("UcDeveloper")
recordset("UcClient") = Request.Form("UcClient")
recordset("UcVendor") = Request.Form("UcVendor")
recordset("UcConsultant") = Request.Form("UcConsultant")
recordset("Ucexpiredate") = Request.Form("Ucexpiredate")
recordset("ArExchange") = Request.Form("ArExchange")
recordset("ArActivedirectory") = Request.Form("ArActivedirectory")
recordset("ArVPN") = Request.Form("ArVPN")
recordset("EtCreatemailbox") = Request.Form("EtCreatemailbox")
recordset("EtMailboxname") = Request.Form("EtMailboxname")
recordset("AdNewuser") = Request.Form("AdNewuser")
recordset("AdCanceluser") = Request.Form("AdCanceluser")
recordset("AdSuspenduser") = Request.Form("AdSuspenduser")
recordset("AdAdditionalaccess") = Request.Form("AdAdditionalaccess")
recordset("AdChangeAccess") = Request.Form("AdChangeAccess")
recordset("AdRemoveAccess") = Request.Form("AdRemoveAccess")
recordset("ArCurrentUserID") = Request.Form("ArCurrentUserID")
recordset("ArHomeNTServer") = Request.Form("ArHomeNTServer")
recordset("ArLogonscriptpath") = Request.Form("ArLogonscriptpath")
recordset("ArOS") = Request.Form("ArOS")
recordset("ArUsergroup1") = Request.Form("ArUsergroup1")
recordset("ArUsergroup2") = Request.Form("ArUsergroup2")
recordset("ArUsergroup3") = Request.Form("ArUsergroup3")
recordset("ArUsergroup4") = Request.Form("ArUsergroup4")
recordset("ArUsergroup5") = Request.Form("ArUsergroup5")
recordset("ArUsergroup6") = Request.Form("ArUsergroup6")
recordset("ArUsergroup7") = Request.Form("ArUsergroup7")
recordset("ArUsergroup8") = Request.Form("ArUsergroup8")
recordset("ArVPNDailupaccess") = Request.Form("ArVPNDailupaccess")
recordset("VPNArNewuser") = Request.Form("VPNArNewuser")
recordset("VPNArChangeCostcenter") = Request.Form("VPNArChangeCostcenter")
Recordset.update

Response.Write(now())

recordset.Close
set recordset=Nothing


Response.Write(recordset("UserID"))



%>

</BODY>
</HTML>


  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
Sorry,

wat ik vergeten ben te zeggen is dat hij voor het emailen (jaja) ook nog de record in een Excel sheet moet zetten,

dit gebeurt in een aparte pagine, die wel een ID nodig heeft, hij haalt data uit de db.

sorry voor al de vragen, ik ben nog niet helemaal thuis in ASP. ik heb alle pagina's al werkent, alleen moet ik dan handmatig alle pagina's langs gaan ( apart invoegen, apart naar excel en apart mailen) als ik uit de 'invoeg' pagina het ID kan toveren kan ik ze allemaal in 1 keer doen!

scheelt :)

Verwijderd

Op vrijdag 15 maart 2002 14:13 schreef burp2001 het volgende:



<%@ Language=VBScript %>
<%
set recordset = server.CreateObject("ADODB.recordset")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(Application("vroot") & "database\newuser.mdb")
strSQL = "SELECT * FROM tblnewuser"
recordset.open strSQL,strconn,1,2

Recordset.addnew
recordset("GuiFirstname") = Request.Form("GuiFirstname")
recordset("GuiLastname") = Request.Form("GuiLastname")
[.....]
recordset("VPNArNewuser") = Request.Form("VPNArNewuser")
recordset("VPNArChangeCostcenter") = Request.Form("VPNArChangeCostcenter")
Recordset.update

Response.Write(now())

recordset.Close
set recordset=Nothing

EN HIER GA JE DE EMAIL VERSTUREN


%>

</BODY>
</HTML>

Query veranderd en waar je de mail moet versturen. BTW: hoe ga je die email versturen dan??

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
hij moet eerst naar Excel gezet worden, dit gebeurt via Excellwriter, in een aparte pagina, die heeft wel een ID nodig.
daarna met ASPMAIL word de excell sheet verstuurt,

Verwijderd

Krijgt iedereen hetzelfde mailtje?
En wat is precies de bedoeling dat je het eerst naar Excel zet om dan te mailen?

Verwijderd

Wat je dan kan doen is wanneer de gebruiker de pagina opstart om gegevens in te inserten een Session aan te maken. Hier kun je een ID van opvragen en deze zet je in de db gelijk met de overige gegevens. Aan de hand van dit SessionID lees je alles weer uit..

Dus in de volgorde van:
code:
1
2
3
4
5
6
sessieID = Session.SessionID

recordset.addnew
hier alle velden toevoegen incl. sessionID (hiervoor een extra veld in de tabel maken)
recordset("sessieID") = sessieID
recordset.update

hieronder statement voor selectie om te inserten in excel
code:
1
2
3
4
sql = "SELECT * FROM tblnewuser WHERE sessieID = " & sessieID & ""
set recordset = strConn.Execute(sql)

userID = recordset("userID")

Nu staat in userID het id wat jij nodig hebt

Daarna de mail versturen..

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
ik zal ook effkes de achtergrond erbij vermelden.

als wij een nieuwe gebruiker hebben moeten wij die bij security in de usa melden ( en een excel sheet ), nu moeten wij ELKE keer als we een nieuwe user hebben die KL*TE sheet invullen, die een stapel standaart waardes heeft voor de verschillende locaties, nu wil ik alles in een DB ( access ) zetten, en dan via de DB in excell en de sheet dan mailen naar security,

dat word het process.. ik hoop dat jullie mij kunnen helpen met het achterhalen van de userID

Verwijderd

Dan is dat van mij toch voldoende?

1. SessionID wordt opgeslagen in sessieID
2. De gebruiker meldt zich aan en vult de gegevens in.
3. De waarde worden opgeslagen incl. sessieID
4. Selecteer aan de hand van sessieID de user en dus ook userID
5. Gegevens in de Excelsheet
6. Mailen!!

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
SessionID, is dat elke keer een andere waarde?

als ik namelijk de page refresh krijg ik dezelfde waarde voor Sessie

Verwijderd

Volgens mij wel jah :) Ik gebruik et zelf ook wel maar zal het es even controleren.

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
STOER!

thanks man!

  • ArjanC
  • Registratie: Juli 2001
  • Laatst online: 26-01 17:16
Bij mij is SessieID steeds hetzelfde.

zelfs als ik m helemaal afgesloten heb.

ik zou hiervoor toch ook now() kunnen gebruiken ?

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 12-09 21:24

BlackBurn

One Ring To Rule Them All

Waarom staan er eigenlijk 2@'s voor IDENTY?? Heet het veld precies @@IDENTY??

Ik gebruik nml. nooit @.

If it is broken, fix it. If it ain't broken, make it better!


Verwijderd

Op vrijdag 15 maart 2002 15:42 schreef burp2001 het volgende:
Bij mij is SessieID steeds hetzelfde.

zelfs als ik m helemaal afgesloten heb.

ik zou hiervoor toch ook now() kunnen gebruiken ?
Wil je aan het eind van alle opdrachten dus waarschijnlijk onderaan de pagina ff zetten:
code:
1
Session.Abandon

Dan worden al je sessies leeggemaakt. now() kun je niet gebruiken omdat er dan meerdere mensen op precies dezelfde tijd kunnen aanmelden.

Verwijderd

Ik sluit me aan bij de stelling van MisterY.

Volgens mij kan je het het beste met het sessionid doen.
iig niet met now()
Pagina: 1