Avatar billede s_raagaard Nybegynder
02. august 2001 - 12:35 Der er 13 kommentarer og
1 løsning

@@IDENTITY - SQL server

Jeg har følgende insert eksempel til en tabel på SQL-server......(2000 el. 7)

Jeg kan ikke få den til at
udskrive ID\'et på den sidste oprettede post, det virker fint nok på en Access 2000 db.

Hvad er der galt her?

Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER=SQL Server; SERVER=123.456.789.123; UID=brugernavn; PWD=password; DATABASE=dbnavn;\"

FormNavn = Replace(Request.form(\"FormNavn\"), \"\'\", \"\'\'\")
FormEmail = Replace(Request.form(\"FormEmail\"), \"\'\", \"\'\'\")
StrSQL = \"INSERT INTO TWform (FormNavn,FormEmail) \"

strSQL = strSQL & \"VALUES (\'\" & FormNavn & \"\',\'\" & FormEmail & \"\') \"
Set rs = myConn.Execute(strSQL)
Set rsIdentity = myConn.Execute(\"SELECT @@IDENTITY as NewID\")
response.write(rsIdentity(\"NewID\"))

myConn.Close
Set myConn = Nothing



/søren
Avatar billede slash Nybegynder
02. august 2001 - 12:38 #1
dette skulle kunne gøre det:

SQLInsert = \"Set nocount on \"
SQLInsert = \"din insertsætning.........\"
SQLInsert = SQLInsert &\" select IndsatFirmaID=@@identity \"
SQLInsert = SQLInsert &\" set nocount off \"
set ResIndsatFirmaID = Conn.execute(SQLInsert)
Response.write ResIndsatFirmaID(\"IndsatFirmaID\")
Avatar billede s_raagaard Nybegynder
02. august 2001 - 12:50 #2
Jeg får følgende fejl:

Item cannot be found in the collection corresponding to the requested name or ordinal.

på linien:

Response.write ResIndsatFirmaID(\"IndsatFirmaID\")

Den opretter recorden godt nok, den kan bare ikke finde den efter den oprettet....hvad er det ???


/søren
Avatar billede slash Nybegynder
02. august 2001 - 12:55 #3
prøv dette:

StrSQL = \"set nocount on\"
StrSQL = StrSQL & \"INSERT INTO TWform (FormNavn,FormEmail) \"
strSQL = strSQL & \"VALUES (\'\" & FormNavn & \"\',\'\" & FormEmail & \"\') \"
StrSQL = StrSQL &\" select NewID=@@identity\"
StrSQL = StrSQL &\" set nocount off \"
Set rs = myConn.Execute(strSQL)
response.write rs(\"NewID\")

Avatar billede s_raagaard Nybegynder
02. august 2001 - 13:02 #4
Det var også sådan at jeg havde gjort, men det giver fejl.....

Det er underligt for min første sætning virker fint på en Access db.

?

/søren
Avatar billede slash Nybegynder
02. august 2001 - 13:04 #5
udskriv lige din sql inden du executer den og post evt. resultatet
Avatar billede s_raagaard Nybegynder
02. august 2001 - 13:11 #6
Den er jeg ikke lige helt med på......hvad mener du?
Avatar billede slash Nybegynder
02. august 2001 - 13:12 #7
prøv dette:

StrSQL = \"set nocount on\"
StrSQL = StrSQL & \"INSERT INTO TWform (FormNavn,FormEmail) \"
strSQL = strSQL & \"VALUES (\'\" & FormNavn & \"\',\'\" & FormEmail & \"\') \"
StrSQL = StrSQL &\" select NewID=@@identity\"
StrSQL = StrSQL &\" set nocount off \"
\'\'\'\'\'\'\'\'\'\'\'\'
response.write strsql
response.end


Set rs = myConn.Execute(strSQL)
response.write rs(\"NewID\")


Avatar billede nuno Nybegynder
02. august 2001 - 13:14 #8
StrSQL = StrSQL &\" set nocount off \"
response.write StrSQL
response.end
Set rs = myConn.Execute(strSQL)

så kan du få og se hvad strSQL egentlig indeholder - istedet for at den bliver udført.... og vis evt. den response.write der kommer ud af det - så er det lidt nemmere at forsøge at hjælpe
Avatar billede nuno Nybegynder
02. august 2001 - 13:14 #9
sorry - det var ikke for at gentage dig slash - begyndte at skrive mit svar før dit var blevet posted :)
Avatar billede s_raagaard Nybegynder
02. august 2001 - 13:26 #10
Den indeholder, dette udskrives ved response.write StrSQL:

INSERT INTO TWform (FormNavn,FormEmail)
VALUES (\'MitNavn\',\'sr@mail.dk\')select FormID=@@identity set nocount off
Avatar billede slash Nybegynder
02. august 2001 - 13:30 #11
og du husker at sætte nocount = on?
Avatar billede slash Nybegynder
02. august 2001 - 13:31 #12
prøv lige at kør din sql manuelt gennem query analyzeren med nogle testværdier!

deslige et lille link til @@identity problematik:
http://www.sqlteam.com/item.asp?ItemID=422
Avatar billede slash Nybegynder
02. august 2001 - 13:59 #13
bist du tot gegangen?
Avatar billede s_raagaard Nybegynder
02. august 2001 - 14:16 #14
Nein aber, immer noch problemen haben....

Dit link refererer jo til lige netop det, og det løser han jo på samme måde som dig....men det virker ikke.....

I min tabel er der et felt sat med primary key, og identify med feed på 1, og den har ingen problemer med at oprette recorden....og jeg har sat nocount on

verdamt ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester