Avatar billede starf Nybegynder
09. maj 2006 - 12:24 Der er 17 kommentarer og
2 løsninger

Indsæt Query string i db

hvordan sætter man en query string ind i en db? når jeg gør sådan her virker det nemlig ikke:

rs("ordrenr") = Request.QueryString("ordrenr")
Avatar billede keysersoze Ekspert
09. maj 2006 - 12:31 #1
rs("ordrenr") = " & Request.QueryString("ordrenr") & "
eller
rs("ordrenr") = '" & Request.QueryString("ordrenr") & "'

alt afhængig af datatypen.
Avatar billede fennec Nybegynder
09. maj 2006 - 12:34 #2
Det kommer an på hvad dit formål er???
Er det en opdatering af værdier, skal du bruge "update" syntaxen:

conn.execute("update dinTabel set ordrenr="& Request.QueryString("ordrenr") &" where id=123")

Eller du skal åbne dit recordset på en bestemt måde, også kan du bruge rs.Update()/rs.add() syntaxen (har aldrig selv brugt denne metode)

Eller er det noget helt andet??
Avatar billede starf Nybegynder
09. maj 2006 - 12:35 #3
skal abre indsætte den i en tabel

<%

SQL = "SELECT * FROM status_ordre"
set rs = Conn.execute(SQL)
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 3, 3

rs.AddNew

rs("ordrenr") = Request.QueryString("ordrenr")
rs("user") = session("name")
rs("date") = date()

if Request.Form("statusmsg") <> "" then
rs("msg") = Request.Form("statusmsg")
end if

rs("ip") = Request.ServerVariables("REMOTE_ADDR")
rs.Update
rs.Close
Set rs = Nothing
Conn.Close
set Conn = Nothing%>

noget hen af det.
Avatar billede starf Nybegynder
09. maj 2006 - 12:36 #4
keysersoze> dine virker ikke får bare:

Expected end of statement

/system/ordre_list_admin.asp, line 692

rs("ordrenr") = " & Request.QueryString("ordrenr") & "
-----------------------------------------^
Avatar billede keysersoze Ekspert
09. maj 2006 - 12:46 #5
ja, ok - med den opbygning er mit svar også forkert. Hvad får du af fejlnår du forsøger som du hacde gjort først.
Avatar billede starf Nybegynder
09. maj 2006 - 12:56 #6
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

og så henviser den til den linie hvor jeg har:

rs("ordrenr") = Request.QueryString("ordrenr")
Avatar billede fennec Nybegynder
09. maj 2006 - 12:57 #7
Så det er en nu række du vil tilføje. Så kan du bruge "insert" syntaxen:

conn.execute("insert into status_ordre(ordrenr,user,[date]) values('"& Request.QueryString("ordrenr") &"','"& session("name") &"',date())")
Avatar billede starf Nybegynder
09. maj 2006 - 13:00 #8
jeg vil begerne beholde den nuværende opsætning, burde da også være muligt?
Avatar billede fennec Nybegynder
09. maj 2006 - 13:05 #9
Hvilken DB kører du på??
For f.eks MySQL understøtter ikke denne metode.
Avatar billede starf Nybegynder
09. maj 2006 - 13:09 #10
jeg køre på MySql...
Avatar billede fennec Nybegynder
09. maj 2006 - 13:45 #11
Så kan du godt glemme den metode. Der skal det igennem SQL-sætningerne insert/update/delete.
Avatar billede starf Nybegynder
09. maj 2006 - 14:07 #12
ok har fundet en vej omkring det, har lavet en disablet form, som jeg så bruger, burde det ik virke?
Avatar billede starf Nybegynder
09. maj 2006 - 14:09 #13
<% if mode = "submit" then %>
<%

SQL = "SELECT * FROM status_ordre"
set rs = Conn.execute(SQL)
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 3, 3

rs.AddNew


rs("user") = session("name")
rs("dato") = date()
if Request.Form("ordrenr") <> "" then
rs("ordrenr") = Request.Form("ordrenr")
end if
if Request.Form("statusmsg") <> "" then
rs("msg") = Request.Form("statusmsg")
end if

rs("ip") = Request.ServerVariables("REMOTE_ADDR")
rs.Update
rs.Close
Set rs = Nothing
Conn.Close
set Conn = Nothing%>

Addet!!

<% end if %>

det her køre nemlig uden fejl, der bliver dog ik lagt noget ind i min database
Avatar billede starf Nybegynder
09. maj 2006 - 14:11 #14
ah jo det virker den sætter bare ik det ind i der står i den disablede form :(
Avatar billede fennec Nybegynder
09. maj 2006 - 14:28 #15
Vi tager den endnu en gang :o)

!!! Du kan IKKE bruge rs.addNew og rs.update med en MySQL database !!!

Du kan SKAL bruge SQL-sætninger:
"insert into dinTabel(kol1, kol2) values(val1, val2)"
"update dinTabel set kol1=val1, kol2=val2 where x=x"

PS. Der er nogen, som kan få det til at fungere med addNew() men det er fåtallet, så det er spild af tid at prøve på det.
Avatar billede starf Nybegynder
09. maj 2006 - 14:32 #16
fennec> det kan man da bruger det da selv i andre dele af min kode uden problemer og det virker også fint nu sååeeee ???? har lavet query on til en session, og det virker fint nu
Avatar billede fennec Nybegynder
09. maj 2006 - 14:40 #17
Hvis du prøver at kikke på andre ? her på E, så har ALLE problemer med at bruge den metode, og alle de ? jeg har deltaget i er end med SQL metoden. For at bruge et citat som kimiwan kom med her http://www.eksperten.dk/spm/198612 :

rs.Update IS NOT RELIABLE with anything other than JET/ACCESS and SQL SERVER
and even then some of us have our doubts.
Note that the engine is called "MySQL", so talk to it in "SQL" and stay away
from inappropriate Microsoft proprietary languages.

Du er altså en af de få som har fået det til at fungere med MySQL. ? er så bare hvor længe det virker...
Avatar billede starf Nybegynder
09. maj 2006 - 14:43 #18
bruger den 2 steder hvor det virker fint?

<% if mode = "submit" then %>
<%

SQL = "SELECT * FROM status_ordre"
set rs = Conn.execute(SQL)
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 3, 3

rs.AddNew


rs("user") = session("name")
rs("dato") = date()

rs("ordrenr") = session("ordrenr")

if Request.Form("statusmsg") <> "" then
rs("msg") = Request.Form("statusmsg")
end if

rs("ip") = Request.ServerVariables("REMOTE_ADDR")
rs.Update
rs.Close
Set rs = Nothing
Conn.Close
set Conn = Nothing%>

og:

<% if mode = "submit" then %>
<%

SQL = "SELECT * FROM tickets"
set rs = Conn.execute(SQL)
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 3, 3

rs.AddNew

rs("user") = session("name")
rs("email") = session("email")

if Request.Form("isue") <> "" then
rs("headline") = Request.Form("isue")
end if
if Request.Form("desc") <> "" then
rs("msg") = Request.Form("desc")
end if
rs("status") = "Open"
rs("date") = date()
rs("ip") = Request.ServerVariables("REMOTE_ADDR")
rs.Update
rs.Close
Set rs = Nothing
Conn.Close
set Conn = Nothing%>

any way smid et svar så kan i dele point ?
Avatar billede fennec Nybegynder
09. maj 2006 - 14:44 #19
.o) <-- One Eyed Jack
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