Avatar billede Slettet bruger
02. marts 2007 - 12:49 Der er 17 kommentarer og
1 løsning

Opdater database

Hej, jeg skal lave som så jeg kan opdatere en tabel i databasen med 1. Altså hvis jeg har har en tabel ved navn tabel1 og i den tabel skal jeg lægge ind til celle1 f.eks. sådan så jeg kan lægge en til den værdi der er i cellen i forvejen. jeg går ud fra det skal gøres vhja, eller noget lign. :

strSQL = "Insert into tabel (tabel) values('+1')"

Nogen der kan hjælpe ??
Avatar billede softspot Forsker
02. marts 2007 - 12:54 #1
update tabel set tabel = tabel + 1


Hvis du vil specificere hvilken række der skal lægges en til kan du benytte where til at filtrere de rækker som opdateret, f.eks.


update tabel set tabel = tabel + 1 where id = 14

eller

update tabel set tabel = tabel + 1 where id in (1,2,3,4,5,6,7,8)
Avatar billede Slettet bruger
02. marts 2007 - 14:57 #2
Så den skal sådan her: ?


strSQL = "update tabel set tabel = tabel + 1 where id = 14"

Eller hvordan ??
Avatar billede softspot Forsker
02. marts 2007 - 15:33 #3
Ja, hvis du skal lægge en til feltet tabel i den række som har id = 14.

Hvis du vil lægge en til feltet tabel i alle rækker i tabellen tabel, så ser den sådan ud:

strSQL = "update tabel set tabel = tabel + 1"

Jeg er nød til at nævne det (jeg kan ikke lade være :)): Det er en dårlig idé at benytte samme navn til tabellen og et felt i tabellen - men det er sikkert også kun gjort i eksemplet (håber jeg). Dels er det forvirrende at læse, dels kan jeg tænke mig at der vil opstå situationer, hvor selv databasen bliver forvirret hvis du ikke passer på.
Avatar billede Slettet bruger
02. marts 2007 - 15:45 #4
hehe det nemlig kun et eksempel :) men jeg har lige et sidste spørgsml :) du skal jo også lige ligget et svar :)

hvis nu tabellen ser således ud

ID      hh      jj
14      1        2
22      1        2

I dit ekssempel vil måde hh og jj bliver forhøjet med 1 ikke ? hvad hvis jeg kune vil have forhøjet hh i ID = 14 ?
Avatar billede softspot Forsker
02. marts 2007 - 15:56 #5
Nej, det er kun det felt du angiver der skal lægges en til der bliver forhøjet.

Hvis jeg tager udgangspunkt i dine eksempeldata, så ville sql-sætningen skulle se således ud for at lægge en til feltet hh's værdi for rækken med id = 14:

strSQL = "update tabel set hh = hh + 1 where id = 14"

Det vil sige at følgende data:

ID      hh      jj
14      1        2
22      1        2

efter ovenstående update, vil se således ud:

ID      hh      jj
14      2        2
22      1        2
Avatar billede softspot Forsker
02. marts 2007 - 15:56 #6
Velbekomme :)
Avatar billede Slettet bruger
02. marts 2007 - 16:02 #7
Mange tak
Avatar billede softspot Forsker
02. marts 2007 - 16:13 #8
Tak for point :)
Avatar billede Slettet bruger
02. marts 2007 - 22:48 #9
:) det virkede desværre ikke helt :) Jeg får bare "The website cannot display the page" Har fået noget afvide med update ikke altid virker helt godt, er der noget om det ? :)
Avatar billede softspot Forsker
02. marts 2007 - 23:00 #10
Det skulle være første gang jeg har hørt det. Jeg synes ikke jeg har haft problemer med update på noget tidspunkt (ikke uden at jeg selv var grunden til dem).

Du skal vist have vist detaljerede fejlmeddelelser i din browser, så du kan få et bedre hint om hvad der rent faktisk går galt på din side.

Hvilken database benytter du?

Hvilken browser benytter du? Hvis det er IE, så kan du få vist detaljerede fejlinformation ved at slå "Vis venlige HTTP fejlbeskeder" (eller hvad den nu hedder) fra i din internetindstillinger på avanceret fanen...
Avatar billede Slettet bruger
02. marts 2007 - 23:12 #11
Jeg benytter access database

Det er IE 7, mit IE er engelsk men jeg prøver lige at finde funktionen.
Avatar billede Slettet bruger
02. marts 2007 - 23:16 #12
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/asp/startenpåprojekt/modtag.asp, line 16
Avatar billede softspot Forsker
02. marts 2007 - 23:35 #13
OK, det er typisk fordi du har angivet et felt som ikke findes i den tabel du forsøger at arbejde på. Du skal kigge din SQL-sætning efter for stavefejl eller andre syntaktiske fejl.

Vis evt. hvordan din tabel ser ud (tabellens navn og hvilke felter du har i tabellen), samt vis den konkrete SQL su udfører mod tabellen.
Avatar billede Slettet bruger
02. marts 2007 - 23:41 #14
Altså hele min kode ser således ud:

<%
        Databaseforbindelse - husk at angive sti til din database
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("virksomheder.mdb")
    Conn.Open DSN

    strSQL = "update svarDanskebank set tilfreds = tilfreds + 1 where id = 1"
    set RS = Conn.Execute(strSQL)
   
   
   
%>
Avatar billede Slettet bruger
02. marts 2007 - 23:43 #15
Avatar billede softspot Forsker
02. marts 2007 - 23:51 #16
Du er nok nød til lige at vise tabellens layout her i tekst, da jeg ikke har access installeret på min maskine...
Avatar billede Slettet bruger
03. marts 2007 - 00:16 #17
upzz :) Det var mig der havde dummet mig, jeg havde skrevet 1 istedet for ID, så det virker nu. Du må undskylde jeg spildte din tid her til aften :) Du skal have MANGE tak for hjælpen.
Avatar billede softspot Forsker
03. marts 2007 - 00:27 #18
Ingen årsag, vi kan jo alle komme til at lave fejl :)
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