05. august 2005 - 17:01Der er
13 kommentarer og 1 løsning
Tilføje til felt i database i stedet for at overskrive
Hvordan undgår man at overskrive den eksisterende data i et felt i en access database? Jeg ønsker at tilføje datoer til et felt, men der gemmes kun den sidste.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
F.eks. Hvis din Update SQL ser sådan ud: strSQL = "UPDATE user SET navn='" & Request.Form("navn") & "', mail='" & Request.Form("mail") & "' WHERE ID=" & TRIM(Request.QueryString("id"))
Men nu vil du kun have navn ændret, så skal din Update SQL se sådan ud: strSQL = "UPDATE user SET navn='" & Request.Form("navn") & "' WHERE ID=" & TRIM(Request.QueryString("id"))
OK, det jeg har brugt hidtil er: Set RS = Server.CreateObject("ADODB.Recordset") RS.Open "SELECT * FROM Medlemmer where Brugernavn = '"& request.form("brugernavn") &"'", strDSN, 1, 3
Prøv denne sætning: SQL = "Update Medlemmer SET Brugernavn = '"& request.form("brugernavn") &"' WHERE ID=" & TRIM(Request.QueryString("id"))
Response.Write SQL
'conn.Execute(SQL) 'Set SQL = nothing
Som du kan se har jeg sat ' for de to sidste linier, det betyder at der ikke bliver gemt noget i databasen, når at du ændre dine oplysniger vil du se dine oplysninger på skærmen, hvis du vil gemme oplysninger skal du fjerne ' foran de to sidste linier og sæt en ' foran Response.Write SQL, det skal du gøre for at oplysningerne ikke kan ses af andre mennesker.
Der er to måder hvorpå man kan hente, rette og tilføje data fra/til en database. Du bruger den ene, svarene prøver at hjælpe dig med den anden... Det skal der gå kage i :) Du skal skrive RS.AddNew umiddelbart før du skriver linjen RS.Fields("IP")... Så vil du tilføje et felt i bunden af dit recordset.
Ja trekkies, det er det med at forstå sin kode :) Jeg har rimelig styr på den måde jeg hidtil har anvendt og det virker. Men nu skal jeg ikke bare ændre indholdet i et felt med tilføje til det. Og derfor truelz, er AddNew ikke hvad jeg er ude efter. Der skal ikke laves et nyt felt, men skrives til i et allerede eksisterede felt. IP-feltet har 2 allerede IPadr1 og IPadr2 - og når IPadr3 skrives til feltet, skal der være IPadr1, IPadr2 og IPadr3 i det.
Ved skrivning til txt-filer er det måden man åbner connection med tal-variabler: ForReading 1 Open a file for reading only. You can't write to this file. ForWriting 2 Open a file for writing. ForAppending 8 Open a file and write to the end of the file.
Nu er jeg vist lidt bagefter :) Min kode laver ikke et nyt felt, men opdatere det felt som man vælger at rette i.
Hvis jeg kan forstå dig ret, vil du tage IPadr1 og IPadr2, men når at man klikker på "Send knappen" vil du have IPadr1 og IPadr2 lagt sammen med IPadr3 og sendt til feltet IPadr3 i databasen, er det sandt?
Alright, det er blevet lidt rodet. Jeg vil skrive en brugeres aktuelle IP (eller dato, whatever) til samme felt i databasen, hver gang denne bruger logger ind. Så et felt i access indeholder en masse IP adresser og hver gang en bruger logger ind, bliver den aktuelle IPadr tilføjet feltet med IP adresser i databasen. Så feltet eksistere, der skal ikke laves et nyt. Problemet er at tilføje data til et felt i databasen, uden at slette eksisterende data i det felt. Glem hvad jeg sagde om text - men tak for linket, det er rart at ha.
Hmm, som du forslår trekkies, så kunne man nok "tage IPadr1 og IPadr2 [...]lagt sammen med IPadr3 og sendt til" et felt i databasen. Men det er da vel ikke nødvendig at trække alt indholdet ud af et felt for at tilføje til det(skrive alt til feltet igen)?
Hmm, nu begynder der jo at komme lidt udfordring i det :) Sorry jeg ikke har svaret, men jeg har ikke været så meget ved computeren på det seneste. Jeg kigger lige lidt på det.
Det ser godt ud truelz, og jeg tror også det var det trekkies mente (05/08-2005 22:50:09). Læs nogle svar begge to, så deler jeg point ud.
Tror dog jeg vælger en anden løsning: Skriver data til et nyt felt hver gang i en anden tabel og laver INNERJOIN med den tabel, der har medlemsnumre. Det giver mulighed for at lege lidt mere med forskellig repræsentation og søgning i data.
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.