Avatar billede martin181 Nybegynder
09. maj 2001 - 13:49 Der er 7 kommentarer og
2 løsninger

Hvordan får jeg lagt en dum fast værdi ind i min database vha. sql?

Hejsa!

Jeg har følgende kode:

<%
RESPONSE.BUFFER=\"True\"
%>
<!-- Forbindelsen til databasen -->
<%
CONST ADOPENKEYSET = 1
CONST ADLOCKOPTIMISTIC = 3
SET CONN = SERVER.CREATEOBJECT(\"ADODB.CONNECTION\")
CONN.OPEN \"DRIVER={Microsoft ACCESS DRIVER (*.MDB)}; DBQ=\" & Server.MapPath(\"../DATABASER/intranet.MDB\")
%>
<!-- Her opdateres ITinitialer -->
<%
    SET RS = SERVER.CREATEOBJECT(\"ADODB.RECORDSET\")
    STRSQL = \"SELECT * FROM Tasks WHERE Tasknumber=\'\" & REQUEST.FORM(\"Task\") & \"\'\"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
rs(\"ITInitials\") = REQUEST.FORM(\"init\")
RS.UPDATE
%>
<!-- ITinitialer slut -->
<!-- Her opdateres  Status -->
<%
    SET RS2 = SERVER.CREATEOBJECT(\"ADODB.RECORDSET\")
    STRSQL = \"SELECT * FROM Tasks WHERE Tasknumber=\'\" & REQUEST.FORM(\"Task\") & \"\'\"
    rs2.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
        rs2(\"Status\") = \"Started\"
        RS2.UPDATE
%>
<!-- Status slut -->
Hurra!

Det virker fint nok - lige pånær det sted hvor jeg vil have værdien \"Started\" ind i min status i tabellen task, på den pågældende tasks plads - jeg får en fejl omkring. syntax - jeg har prøvet lidt af hvert, men det lykkedes ikke - er der nogen der kan \"fikse det\"?
Avatar billede sone Nybegynder
09. maj 2001 - 13:52 #1
Er feltet Status et tekst-felt?
Avatar billede erikjacobsen Ekspert
09. maj 2001 - 13:52 #2
HVis tasknumber er et tal, så:

STRSQL = \"SELECT * FROM Tasks WHERE Tasknumber=\" & REQUEST.FORM(\"Task\")
Avatar billede tdaugaard Nybegynder
09. maj 2001 - 13:52 #3
Brug UPDATE istedet.

<%
    Conn.Execute \"UPDATE tasks SET status=\'Started\' WHERE tasknumber=\'\" & REQUEST.FORM(\"Task\") & \"\'\"
%>
Avatar billede martin181 Nybegynder
09. maj 2001 - 13:55 #4
Status er et tekstfelt og tasknumber er et autonummereret felt
Avatar billede tdaugaard Nybegynder
09. maj 2001 - 13:58 #5
nåå .. så er det derfor :

<%
RESPONSE.BUFFER=\"True\"
%>
<!-- Forbindelsen til databasen -->
<%
CONST ADOPENKEYSET = 1
CONST ADLOCKOPTIMISTIC = 3
SET CONN = SERVER.CREATEOBJECT(\"ADODB.CONNECTION\")
CONN.OPEN \"DRIVER={Microsoft ACCESS DRIVER (*.MDB)}; DBQ=\" & Server.MapPath(\"../DATABASER/intranet.MDB\")
%>
<!-- Her opdateres ITinitialer -->
<%
    SET RS = SERVER.CREATEOBJECT(\"ADODB.RECORDSET\")
    STRSQL = \"SELECT * FROM Tasks WHERE Tasknumber=\" & REQUEST.FORM(\"Task\")
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
rs(\"ITInitials\") = REQUEST.FORM(\"init\")
RS.UPDATE
%>
<!-- ITinitialer slut -->
<!-- Her opdateres  Status -->
<%
    SET RS2 = SERVER.CREATEOBJECT(\"ADODB.RECORDSET\")
    STRSQL = \"SELECT * FROM Tasks WHERE Tasknumber=\" & REQUEST.FORM(\"Task\")
    rs2.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
        rs2(\"Status\") = \"Started\"
        RS2.UPDATE
%>
<!-- Status slut -->
Hurra!
Avatar billede martin181 Nybegynder
09. maj 2001 - 14:00 #6
nu prøvede jeg bare lige at kopiere direkte fra tdaugaard - det fik jeg denne fejl ud af:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression \'Tasknumber=\'.

/Dynamiske/tasktaken.asp, line 15
Avatar billede tdaugaard Nybegynder
09. maj 2001 - 14:01 #7
Det er fordi REQUEST.FORM(\"Task\")  ikke indeholder noget !
Avatar billede martin181 Nybegynder
09. maj 2001 - 14:05 #8
Vi er da enige om at Request.form(\"Task\") henter indholdet af feltet Task fra foregående side, hvorpå formen, der sender data til denne side?
Avatar billede martin181 Nybegynder
22. maj 2001 - 13:29 #9
Jeg giver point til tdaugaard og ericjacobsen
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