Avatar billede guyb_rdk Nybegynder
22. september 2004 - 15:32 Der er 11 kommentarer og
1 løsning

Sql-kode problem i ASP

Hejsa. Et kort og simpelt spørgsmål. Hvad er der forkert i denne kode ? . Mere specifikt.. Sql-strengen virker ikke, og det må den jo gerne komme til
Jeg er utrolig ny på kodningsfronten, så for en trænet er dette spørgsmål garanteret utrolig hurtigt afviklet.


/***********Kodeudsnit start***********\
<% dim vFilename, vUserInitials, vComment %>
   
    <form method="post" action="NewDocs.asp">
  <p align="center"><font size="4">Document creation template</font></p>
  <table border="0" width="100%" height="253">
    <tr>
      <td width="25%" height="63">
        <p align="center"><img border="0" src="../images/Hdonut.jpg" width="70" height="80"></td>
      <td width="25%" height="63"></td>
      <td width="25%" height="63"></td>
      <td width="25%" height="63"></td>
    </tr>
    <tr>
      <td width="25%" height="63">
        <p align="center"></td>
      <td width="25%" height="63"><input type="text" name="TFileName" size="30" tabindex="1"></td>
      <td width="25%" height="63" align="left">
        <p align="left"><b>Filename.</b></td>
      <td width="25%" height="63"></td>
    </tr>
    <tr>
      <td width="25%" height="63"></td>
      <td width="25%" height="63"><input type="text" name="TUserInitials" size="30" tabindex="2"></td>
      <td width="25%" height="63" align="left"><b>User Initials.</b></td>
      <td width="25%" height="63"></td>
    </tr>
    <tr>
      <td width="25%" height="64"></td>
      <td width="25%" height="64"><input type="text" name="TComment" size="30" tabindex="3"></td>
      <td width="25%" height="64" align="left"><b>Comments for document.</b></td>
      <td width="25%" height="64"></td>
    </tr>
  </table>
  <p align="center"><input type="submit" value="Update" name="B1" tabindex="4">&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp;&nbsp; <input type="reset" value="Cancel" name="B2" tabindex="5"></p>
</form>
<% vFilename = Request.form("TFileName") %>
<% vUserInitials = Request.form("TUserInitials") %>
<% vComment = Request.form("TComment") %>


<% dim rs, recaffected
    set conn=Server.CreateObject("ADODB.COnnection")
  conn.Provider="Microsoft.Jet.OLEDB.4.0"
    Conn.Open Server.MapPath("../db/DONUT.mdb")
   
    sql="INSERT INTO Documents (TFileName, TUserInitials, TComment)"
    sql=sql & " VALUES "
    sql = sql & "('" & Request.Form("vFileName") & "'" & ","
    sql=sql & "'" & Request.Form("vUserInitials") & "',"
    sql=sql & "'" & Request.Form("vComment") & ")"
   
        on error resume next
    conn.Execute sql, recaffected
    if err<>0 then
        Response.Write("Der skete en fejl i opdateringen!")
    else
    Response.Write("Records tilføjet til databasen")
      end if
conn.close
%>

/***********Kodeudsnit slut***********\
Avatar billede eagleeye Praktikant
22. september 2004 - 15:35 #1
Der mangler en ' til sidste i denne linje:
sql=sql & "'" & Request.Form("vComment") & ")"

Sådan her:

sql=sql & "'" & Request.Form("vComment") & "')"
Avatar billede guyb_rdk Nybegynder
22. september 2004 - 15:39 #2
hehe.. tak
Men det løste ikke hele problemet... Databasen modtager ingen data, og fejlmeddelelsen  "Der skete en fejl i opdateringen" er det eneste der kommer ud
Avatar billede fennec Nybegynder
22. september 2004 - 15:39 #3
Hvis der er bruge ' i nogle af dine felter (f.eks vComment) vil du få en fejl. Lav derfor en replace() på de felter det er aktuelt, så ' bliver udskiftet med ''.

sql=sql & "'" & replace(Request.Form("vComment"),"'","''") & ")"
Avatar billede fennec Nybegynder
22. september 2004 - 15:41 #4
fjern "on error resume next" fra koden så du får den rigtige fejlmeddelse ud....
Avatar billede eagleeye Praktikant
22. september 2004 - 15:46 #5
noget andet er du ligger form input ind i variable:
<% vFilename = Request.form("TFileName") %>
<% vUserInitials = Request.form("TUserInitials") %>
<% vComment = Request.form("TComment") %>

og så bruger du nogle andre navne i SQL sægningen i request.from enten skal du bruge de variable du har lavet eller de rigtige Request.form navne. Så prøv at rette:

    sql="INSERT INTO Documents (TFileName, TUserInitials, TComment)"
    sql=sql & " VALUES "
    sql = sql & "('" & Request.Form("vFileName") & "'" & ","
    sql=sql & "'" & Request.Form("vUserInitials") & "',"
    sql=sql & "'" & Request.Form("vComment") & ")"


Til dettte så du bruge din variable navne:

    sql="INSERT INTO Documents (TFileName, TUserInitials, TComment)"
    sql=sql & " VALUES "
    sql = sql & "('" & vFileName & "'" & ","
    sql=sql & "'" & vUserInitials & "',"
    sql=sql & "'" & vComment & "')"
Avatar billede guyb_rdk Nybegynder
22. september 2004 - 15:51 #6
Jeg udkommenterede " on error resume next " og får nu denne fejlmeddelse :
Microsoft JET Database Engine error '80040e14'

The INSERT INTO statement contains the following unknown field name: 'TFileName'. Make sure you have typed the name correctly, and try the operation again.

/sandbox/cpn2/Revised_Donut/Pages/NewDocs.asp, line 67
Avatar billede eagleeye Praktikant
22. september 2004 - 15:53 #7
Så har du ikke en kolonne som hedder TFileName i den database tabel.
Tjek kolonne navne TFileName, TUserInitials, TComment er rigtige.
Avatar billede guyb_rdk Nybegynder
22. september 2004 - 15:56 #8
Den virker nu.. Helt perfekt ... Jeg havde skrevet TFilename i databesen opdagede jeg, så da det blev rettet fungerede det 8)
Avatar billede guyb_rdk Nybegynder
22. september 2004 - 15:57 #9
Smid et svar begge to.. Jeg håber at det er ok at eagleeye får flest point, får hans respons gave mig mest udbytte
Avatar billede eagleeye Praktikant
22. september 2004 - 15:58 #10
ok her et svar :)
Avatar billede guyb_rdk Nybegynder
22. september 2004 - 16:01 #11
hmm, han er længe om det, ham fennec ... Jeg smider opintene til dig, OG opretter et spørgsmål, hvor han kan hente sine point, hvis han skulle have lyst.

Tusind tak for hjlæpen de herrer.
Avatar billede guyb_rdk Nybegynder
22. september 2004 - 16:03 #12
fuck jeg mangler min staveplade 8/
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