Avatar billede orca Nybegynder
06. juli 2001 - 13:37 Der er 4 kommentarer og
1 løsning

MS SQL problemer

Lige siden jeg skiftede fra min Access database til en MS SQL database har jeg fået en Intern HTTP Serverfejl (500) ved denne kode når jeg skullet tilføje en record:

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
    strSQL = \"Select * From profiles\"
    rs.Open strSQL, Conn, 1, 3

rs.AddNew
        rs(\"username\") = username
      rs(\"sex\") = sex
      rs(\"age\") = age
      rs(\"realname\") = realname
      rs(\"country\") = country
      rs(\"email\") = email
      rs(\"icq\") = int(icq)
      rs(\"website\") = website
      rs(\"password\") = password
      rs(\"job\") = job
      rs(\"datecreated\") = strDate
        rs(\"picture\") = \"nopic.jpg\"
        rs(\"lastupdated\") = strDate
      rs(\"hits\") = \"0\"
      rs(\"birthday\") = birthday
      rs(\"freetext\") = freetext
      rs.Update

errormsg = \"<font>Your profile was succesfully created, you may now login using:<br>Username: \" & server.htmlencode(username) & \"<br>Password: \" & server.htmlencode(password) & \"</b></font><br>\"

end if

Nogen forslag til hvad problemet kan være?
Avatar billede tmceu Praktikant
06. juli 2001 - 14:16 #1
Prøv at kigge på CursorType parametren for RecordSet objektet. Da du ikke har angivet nogen CursorType, får du default som er forwardonly og dette er non-updatable. Hvis du i stedet anvender én af typerne adOpenDynamic (2) eller adOpenKeyset (1) vil du kunne tilføje en record.

Mvh
Thomas
Avatar billede orca Nybegynder
06. juli 2001 - 14:19 #2
kan du uddybe det lidt? hvor skal jeg definere cursotype?
Avatar billede tmceu Praktikant
06. juli 2001 - 14:28 #3
Undskyld, jeg var vist lidt for hurtig til at læse dit script. Du åbner faktisk dit recordset med en keyset cursor (3. parameter = 1 i dit script).

Så har jeg ingen forklaring på problemet, men kan da forslå dig at bruge et SQL INSERT INTO statement i stedet. Hvis det eneste du skal gøre, er at tilføje en ny record, vil det give dig bedre performance. Du har ikke bruge for at bruge ressourcer på at returnere et recordset med x antal records, blot for at tilføje en ny. Situationen er en anden hvis du vil opdatere, der kan man godt argumentere for at returnere et recordset først.

Jeg antager at du allerede kender syntaksen for INSERT INTO ?

Mvh
Thomas
Avatar billede orca Nybegynder
06. juli 2001 - 14:38 #4
jeg kender syntaksen ja. jeg prøvede den men det hjalp ikke, jeg vil også gerne beholde min anden metode da jeg generelt bruger den i de fleste situationer på mit site.
Avatar billede orca Nybegynder
06. juli 2001 - 17:32 #5
jeg har nu til delvis fået løst problemet... kig istedet på opdaterede version af mit problem:
http://www.eksperten.dk/spm/87184

Mvh Mark
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