Avatar billede sago Nybegynder
08. april 2002 - 22:23 Der er 9 kommentarer og
1 løsning

Problem med "insert into" statement

Hej, jeg har et problem jeg håber i kan hjælpe mig med :)

Jeg er igang med at lave et lille nyhedssystem til mit site, men jeg har problemer når jeg skal indsætte en ny nyhed i databasen. Når jeg opretter den indsætter den ikke mine data, men den laver bare en ny row, hvor alle integers er 0, tekststrenge er tomme, datoen er sat til 1/1/1900 osv. Her er min kode:

    Dim Conn
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DSN=blabla", "un", "psw"

    strSQL = "INSERT INTO news (id,date,person_id,headline,text) VALUES ('" & Request.Form("id") & "','" & Request.Form("date") & "','" & Request.Form("person_id") & "','" & Request.Form("headline") & "','" & Request.Form("text") & "')"

    Set rs = Conn.Execute(strSQL)
    Conn.Close
    Set Conn = Nothing

Hvad gør jeg galt? På forhånd tak for hjælpen!
Avatar billede dsjk Novice
08. april 2002 - 22:29 #1
Prøv at sætte disse 2 linier ind lige inden set rs= conn.Execute(strSQL)

Response.write "<br>SQL:"& strsql
response.end 

Så kan du se hvad din sqlstr indeholder.

dsjk
Avatar billede sago Nybegynder
08. april 2002 - 22:34 #2
Jeg får det her:

SQL:INSERT INTO news (id,date,person_id,headline,text) VALUES ('','','','','')

Det forstår jeg ikke? Jeg får dataene ind, det kan jeg se på adressen. Hvad går der galt?
Avatar billede dsjk Novice
08. april 2002 - 22:37 #3
hvordan kan du se det på adressen?
Er formen på en side, mens sqlstr er på en anden side?
Avatar billede sago Nybegynder
08. april 2002 - 22:40 #4
Ja, det er den. Jeg har lavet formen som en GET (midlertidigt), så jeg kan se hvad der bliver sendt videre.

Så jeg får f. eks. "opret_nyheder.asp?id=11&headline=Overskrift%21&date=1%2F1%2F2002&person_id=12&text=Test%21"
Avatar billede minijensen1 Nybegynder
08. april 2002 - 22:43 #5
hvis du har lavet den som GET skal du vist nok fjerne .Form fra din Request ..
så det bliver til ..

    strSQL = "INSERT INTO news (id,date,person_id,headline,text) VALUES ('" & Request("id") & "','" & Request("date") & "','" & Request("person_id") & "','" & Request("headline") & "','" & Request("text") & "')"
Avatar billede dsjk Novice
08. april 2002 - 22:43 #6
ok,så skal du rette din sqlstr til denne her, vil jeg mene

strSQL = "INSERT INTO news (id,date,person_id,headline,text) VALUES ('" & Request.Querystring("id") & "','" & Request.Querystring("date") & "','" & Request.Querystring("person_id") & "','" & Request.Querystring("headline") & "','" & Request.Querystring("text") & "')"


dsjk
Avatar billede sago Nybegynder
08. april 2002 - 22:48 #7
minijensen1, det virker :) Mange tak! Smid et svar, så får du dine point.

Hvis jeg laver formen på den samme side, så skal den hedde Request.form?
Avatar billede eagleeye Praktikant
08. april 2002 - 22:53 #8
hvis du bruger:
GET skal man benytte Request.Querystring("..")
POST skal man benytte Request.Form("..")

Hvis man er i tvivl eller man ikke gider tænke på det så benytter man bare Request("..")  den hendte begge typer data (GET og POST)
Det er jo Microsoft som har lavet det :)
Avatar billede sago Nybegynder
08. april 2002 - 22:56 #9
Aha... lyder ikke så praktisk ;)
Avatar billede minijensen1 Nybegynder
08. april 2002 - 22:58 #10
svar :-)
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