Avatar billede martin181 Nybegynder
22. maj 2001 - 13:36 Der er 19 kommentarer og
1 løsning

Problem med indsættelse af værdi i db

Hejsa!

Jeg har følgende kode, som bliver brugt til at tilføje data i min database:

DIM CONNECT, ONTilfoej
SET CONNECT = SERVER.CREATEOBJECT(\"ADODB.CONNECTION\")
CONNECT.OPEN \"DRIVER={Microsoft ACCESS DRIVER (*.MDB)}; DBQ=\" & Server.MapPath (\"../DATABASER/licenser.MDB\")
%>
<%
SET ONTilfoej = CONNECT.EXECUTE (\"INSERT INTO Medier (MedieNR, Navn, Opgradering, Medietype, Kommentar, Noegle) VALUES (\'\"+ REQUEST.QUERYSTRING(\"MedieNR\")+\"\',\'\"+ REQUEST.QUERYSTRING(\"Navn\")+\"\',\'\"+  REQUEST.QUERYSTRING(\"Opgradering\") +\"\',\'\"+ REQUEST.QUERYSTRING(\"Medietype\") +\"\',\'\"+ REQUEST.QUERYSTRING(\"Kommentar\") + +\"\',\'\"+ REQUEST.QUERYSTRING(\"Noegle\") +\"\')\")
%>

Jeg får sendt data herfra:

<FORM ACTION=\"TilfoejLicensNu.asp\" NAME=\"Tilfoej\">
<TABLE BORDER=\"0\">
<TR>
        <TD>Medienr</TD>
        <TD><INPUT TYPE=\"Text\" SIZE=\"4\" MAXLENGTH=\"4\" NAME=\"Medie\"></TD>
</TR>
<TR>
        <TD>Navn</TD>
        <TD><INPUT TYPE=\"Text\" SIZE=\"60\" MAXLENGTH=\"60\" NAME=\"Navn\"></TD>
</TR>
<TR>
        <TD>Opgradering</TD>
        <TD><INPUT TYPE=\"Text\" SIZE=\"20\" MAXLENGTH=\"20\" NAME=\"Opgrad\"></TD>
</TR>
<TR>
        <TD>Medietype</TD>
        <TD><INPUT TYPE=\"Text\" SIZE=\"20\" MAXLENGTH=\"20\" NAME=\"Type\"></TD>
</TR>
<TR>
        <TD>Kommentar</TD>
        <TD><TEXTAREA WRAP=\"on\" ROWS=\"5\" COLS=\"51\" NAME=\"Kommentar\"></TEXTAREA></TD>
</TR>
<TR>
        <TD>Nøgle</TD>
        <TD><INPUT TYPE=\"Text\" SIZE=\"40\" MAXLENGTH=\"40\" NAME=\"Noegle\"></TD>
</TR>
        <TD>&nbsp;</TD>
        <TD>&nbsp;</TD>
</TR>
<TR>
<TD><INPUT TYPE=\"submit\" VALUE=\"Gem ændring\" NAME=\"send\"></TD>
<TD><INPUT TYPE=\"reset\" VALUE=\"Nulstil felter\" NAME=\"Reset\"></TD>
</TR>
</TABLE>
</FORM>

Mit problem er at jeg får denne besked, selv om jeg har udfyldt alle felter, når jeg tester på det:

Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Field \'Medier.MedieNR\' cannot be a zero-length string.

/Licenser/Dynamiske/TilfoejLicensNu.asp, line 12

Er der nogen der kan forklare hvad jeg gør forkert?
Avatar billede eagleeye Praktikant
22. maj 2001 - 13:39 #1
Hvis  MedieNR er et tal skal der ikke \'\' omkring

..VALUES (\"+ REQUEST.QUERYSTRING(\"MedieNR\")+\",\'\"+ ..

Der skal kun \'\' omkring tekst.
Avatar billede martin181 Nybegynder
22. maj 2001 - 13:41 #2
Alt er text!
Avatar billede eagleeye Praktikant
22. maj 2001 - 13:41 #3
I VB ASP skal du benytte & istedet for + når du ligger strenge sammen.
Avatar billede eagleeye Praktikant
22. maj 2001 - 13:43 #4
det giver:
SET ONTilfoej = CONNECT.EXECUTE (\"INSERT INTO Medier (MedieNR, Navn, Opgradering, Medietype, Kommentar, Noegle) VALUES (\'\"& REQUEST.QUERYSTRING(\"MedieNR\")&\"\',\'\"& REQUEST.QUERYSTRING(\"Navn\")&\"\',\'\"&  REQUEST.QUERYSTRING(\"Opgradering\") &\"\',\'\"& REQUEST.QUERYSTRING(\"Medietype\") &\"\',\'\"& REQUEST.QUERYSTRING(\"Kommentar\") &\"\',\'\"& REQUEST.QUERYSTRING(\"Noegle\") &\"\')\")
Avatar billede weje Nybegynder
22. maj 2001 - 13:43 #5
Er medieNr ikke af typen tal i databasen?? hvis den er det, må du ikke have \' foran og bagved.

Weje
Avatar billede martin181 Nybegynder
22. maj 2001 - 13:45 #6
>>Weje - Hvis du kigger lidt højere oppe har eagleeye allerede spurgt om dette
Avatar billede martin181 Nybegynder
22. maj 2001 - 13:47 #7
Har lige prøvet med eagleeyes forslag - det giver stadig følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Field \'Medier.MedieNR\' cannot be a zero-length string.

/Licenser/Dynamiske/TilfoejLicensNu.asp, line 12
Avatar billede eagleeye Praktikant
22. maj 2001 - 13:50 #8
Det tyder på at REQUEST.QUERYSTRING(\"MedieNR\") er tom.
Kommer det fra en form eller fra linket(side.asp?MediaNR=III). ?
Avatar billede martin181 Nybegynder
22. maj 2001 - 13:53 #9
Du kan se længere oppe af siden, hvilken form jeg har sendt data fra - jeg har prøvet ud fra disse sider med værdien 9999 i alle felter - for at kunne genkende den i min db, når den senere skal slettes
Avatar billede eagleeye Praktikant
22. maj 2001 - 13:56 #10
Prøv at ændre REQUEST.QUERYSTRING til REQUEST.FORM
Avatar billede martin181 Nybegynder
22. maj 2001 - 13:59 #11
prøver lige
Avatar billede eagleeye Praktikant
22. maj 2001 - 14:03 #12
Jeg så lige her:
<INPUT TYPE=\"Text\" SIZE=\"4\" MAXLENGTH=\"4\" NAME=\"Medie\">
Input name er Medie ..når du hendter kalder du den MedieNR i Request.Form(\"MedieNR\")
Endten skal navnet i INPUT TYPE eller i request ændres....
Avatar billede martin181 Nybegynder
22. maj 2001 - 14:04 #13
hehe - den så jeg også lige selv før - har fået den ændret - og har fået request.for i stedet for request.querystring - men stadig samme billede
Avatar billede eagleeye Praktikant
22. maj 2001 - 14:04 #14
Det samme med: REQUEST.QUERYSTRING(\"Opgradering\") +\"\',\'\"+ REQUEST.QUERYSTRING(\"Medietype\")

Opgradering i INPUT TYPE name=Opgrad
Medietype i INPUT TYPE name=type
Avatar billede eagleeye Praktikant
22. maj 2001 - 14:08 #15
hilken fejl får du nu?
stadig på samme felt?
Avatar billede martin181 Nybegynder
22. maj 2001 - 14:21 #16
Desværre - nøjagtig samme fejl - Microsoft OLE DB Provider for ODBC Drivers error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Field \'Medier.MedieNR\' cannot be a zero-length string.

/Licenser/Dynamiske/TilfoejLicensNu.asp, line 12
Avatar billede eagleeye Praktikant
22. maj 2001 - 14:34 #17
har du mulighed for at prøve at udskrive request.form(\"medienr\") så du tjekke om den får fat i nogle data?
Du skal nok havd nogle HTML tags ind:
<html>
<body>
response.write request.form(\"medienr\")
</body>
</html>
Avatar billede martin181 Nybegynder
22. maj 2001 - 14:37 #18
jeg vil prøve - men jeg vender nok først tilbage i morgen med respons - jeg har noget andet jeg skal nå i dag...
Avatar billede eagleeye Praktikant
22. maj 2001 - 14:51 #19
Hvis du har to sekunder kan du evt prøve:

<FORM ACTION=\"TilfoejLicensNu.asp\" NAME=\"Tilfoej\" METHOD=POST>
Avatar billede martin181 Nybegynder
22. maj 2001 - 14:53 #20
det virkede sgu\'! - tak for hjælpen!
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