Avatar billede html_wizard Nybegynder
02. juni 2005 - 11:38 Der er 9 kommentarer og
1 løsning

Problemer med nyt felt i Access DB - ASP

Jeg har problemer med min database. Jeg kan ikke få den til at lave mere end et felt. DVS sletter jeg det ene felt den vil oprette vil den gerne lave et nyt men så heller ikke flere!!

Hvad gør jeg?
Avatar billede html_wizard Nybegynder
02. juni 2005 - 11:38 #1
HER ER KODEN

<%
If Request.Form("new") <> "" Then

Const adOpenKeyset = 1
Const adLockOptimistic = 3

set conn = server.createobject("ADODB.Connection")
conn.open "DBQ=denkomplettesti.mdb;Driver={Microsoft Access Driver (*.mdb)};"

    strurl = Request.Form("url")
    strtext = Request.Form("text")
    strpicurl = Request.Form("picurl")
    strart1 = Request.Form("art1")
    strart2 = Request.Form("art2")
    strart3 = Request.Form("art3")
    strart4 = Request.Form("art4")
    strart5 = Request.Form("art5")
    strart6 = Request.Form("art6")
    strart7 = Request.Form("art7")
    strart8 = Request.Form("art8")
    strart9 = Request.Form("art9")
    strart10 = Request.Form("art10")
   
        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "SELECT * FROM search;"
        rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
        If (rs.BOF or rs.EOF) Then
                rs.addnew
            rs("url") = strurl
            rs("text") = strtext
            rs("picurl") = strpicurl
            rs("art1") = strart1
            rs("art2") = strart2
            rs("art3") = strart3
            rs("art4") = strart4
            rs("art5") = strart5
            rs("art6") = strart6
            rs("art7") = strart7
            rs("art8") = strart8
            rs("art9") = strart9
            rs("art10") = strart10
            rs("dato") = Now()
            rs.Update
    End If
        rs.Close
        Set rs = Nothing
      conn.Close
      Response.redirect ("select.asp")
    End If
%>
Avatar billede html_wizard Nybegynder
02. juni 2005 - 11:40 #2
PS den giver ingen fejlmelding. Den viser bare siden select.asp, som om alting er ok, men der er altså ikke kommet noget nyt felt.
Avatar billede benhur Nybegynder
02. juni 2005 - 11:50 #3
Ved ikke om jeg tager fejl, men for mig ser det ud som at du har lavet en betingelse om at den kun skal oprette en ny hvis tabellen er tom... IF(rs.BOF or rs.EOF)
Avatar billede fennec Nybegynder
02. juni 2005 - 11:56 #4
Kan du ikke også bare bruge insert syntaxen. Så skal du slet ikke bruge et RecordSet:

conn.execute("insert into(tal1, tal2, text1) values(10, 12.2, 'text')")

Du skal så selv lave noget tjek på data. F.eks komma tal skal bruge . og i text skal ' udskiftes med 2.
Avatar billede html_wizard Nybegynder
02. juni 2005 - 12:05 #5
Henbur

Du har muligfis vat i noget af det rigtige. Jeg skulle jeg da ændre sætningen til
Avatar billede benhur Nybegynder
02. juni 2005 - 13:47 #6
Jeg ved ikke hvordan du skal rette i din sætning, da jeg aldrig selv har arbejdet på den måde der. Men jeg vil foreslå at du gør som fennect foreslår.
Brug Insert Into i stedet for. Og så brug Replace(Request.Form("text"), "'", "''") f.eks.
Avatar billede fennec Nybegynder
02. juni 2005 - 15:28 #7
Hvis du vil bruge det som det er, mener jeg du bare skal fjerne if sætningen.
Avatar billede html_wizard Nybegynder
02. juni 2005 - 20:40 #8
ja det skulle jeg , tak

Den måde jeg arbejder på er selvlært ved ikke hvorfor jeg arbejder på den måde, men hvordan arbejder i?
Avatar billede html_wizard Nybegynder
02. juni 2005 - 20:40 #9
Læg et svar
Avatar billede fennec Nybegynder
03. juni 2005 - 08:17 #10
Jeg bruger altid insert syntax. Den fylder mindre i koden, men man skal være meget opmærksom på data, som skal indsættes. Det skal næsten altid formateres/tjekkes, og glemmer man det, kan databasen hackes. Tilgængæld synes jeg at jeg har mere kontrol, og en forstålig kode.

Der er skam ikke noget forkert i at bruge recordset metoden. Det er udelukkende smag og behag.

.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