Avatar billede kartolux Nybegynder
13. maj 2001 - 14:57 Der er 26 kommentarer og
1 løsning

Hurtig databaseløsning

Hej!

Hvem vil lave dette hurtigt? En database + asp-kode.

Ved hjælp af denne connection skal 20 variabler lægges ned i min database:

Set dbConn = Server.CreateObject(\"ADODB.Connection\")
dbConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"/_private/Orders.mdb\")

Der er ingen kontrol på, om noget eksisterer i forvejen. Data skal bare lægges ned i en ny record. Databasen må dog maksimalt indeholde 1000 records. Hvis den nyoprettede er nummer 1001 skal den ældste slettes. Kontinuerligt.

Variablerne (og felterne i databasen) hedder:

(OrderID=Unik nøgle)
TimeNow (Hentes fra serveren)
ArticleId
LevId
CookieFirma
CokkieAtt
CookieAdresse1
CookieAdresse2
CookiePostnr
CookieBynavn
CookieTelefon
CookiEmail
Antal1
Antal2
Antal3
Antal4
Kupon1
Kupon2
Kupon3
Kupon4

Jeg skal bruge orders.mdb i access 2000 format og asp-koden, der skriver det hele ned i databasen.




Avatar billede wof Nybegynder
13. maj 2001 - 17:48 #1
Da ik for 60 points. :o)
Avatar billede kartolux Nybegynder
13. maj 2001 - 18:19 #2
Hvor meget så?  :0)
Avatar billede wof Nybegynder
13. maj 2001 - 18:19 #3
100 - 200
Avatar billede kartolux Nybegynder
13. maj 2001 - 18:28 #4
125 er i orden - starter du? :0)
Avatar billede wof Nybegynder
13. maj 2001 - 18:30 #5
Jeg gider ikke lige nu for kun 125.
Det må vente til i aften/nat.
Avatar billede kartolux Nybegynder
13. maj 2001 - 18:53 #6
Det er i orden :0)
Avatar billede wof Nybegynder
13. maj 2001 - 18:54 #7
Okay.
Avatar billede webbe Nybegynder
14. maj 2001 - 11:29 #8
Hvad er forskellen på OrderID (din nøgle) og ArticleID?????

Bruger du autonummerering til begge to?
Avatar billede kartolux Nybegynder
14. maj 2001 - 12:11 #9
OrderId tages fra databasens eget felt for unik nøgle (Genereres af Access ved indsættelse af ny record).

ArticleId er bare en variabel, som der gerne må være mange af. (Som de andre variabler)

Jeg håber, du forstår hvad jeg mener :0)
Avatar billede webbe Nybegynder
14. maj 2001 - 12:19 #10
Nej - egentlig ikke!!!

Hvis ikke du bruger ArticleId til noget er der vel ikke nogen grund til at have den med!?

Hvilken type variabel skal det være?
Avatar billede kartolux Nybegynder
14. maj 2001 - 12:23 #11
Jamen ArticleId er bare en variabel fra mine øvrige asp-data, som skal indsættes i et tilhørende felt i databasen, fuldstændigt ligesom f.eks. Antal1 eller Antal2. Alle variablernes værdier skal lægges ned i tilhørende felter i databasen. Den eneste, der genereres af databasen er OrderId - som unik numerisk nøgle. Alle de andre felter skal være alfanumeriske memo-felter (med \"ubegrænset\" længde).

Avatar billede webbe Nybegynder
14. maj 2001 - 12:25 #12
Nå okay - så ArticleId er altså noget som brugeren angiver!!!???
Avatar billede kartolux Nybegynder
14. maj 2001 - 12:33 #13
Yes - alle data, som ligger i variablerne kommer fra \"samme side\" som den du skriver kode til. Du skal kun skrive koden, der \"sætter data ind\" i databasen. Resten har jeg selv lavet :0)
Avatar billede webbe Nybegynder
14. maj 2001 - 13:00 #14
Okay - here goes:

sql = \"INSERT INTO tablename (TimeNow, ArticleId, LevId, CookieFirma, CokkieAtt, CookieAdresse1, CookieAdresse2, CookiePostnr, CookieBynavn, CookieTelefon, CookiEmail, Antal1, Antal2, Antal3, Antal4, Kupon1, Kupon2, Kupon3, Kupon4) VALUES (\"&\"\'\"&request.form(\"time\")&\"\', \'\"&request.form(\"ArticleId\")&\"\', \'\"&request.form(\"LevId\")&\"\', \'\"&request.form(\"CookieFirma\")&\"\', \'\"&request.form(\"CookieAtt\")&\"\', \'\"&request.form(\"CookieAdresse1\")&\"\', \'\"&request.form(\"CookieAdresse2\")&\"\', \'\"&request.form(\"CookiePostnr\")&\"\', \'\"&request.form(\"CookieBynavn\")&\"\', \'\"&request.form(\"CookieTelefon\")&\"\', \'\"&request.form(\"CookiEmail\")&\"\', \'\"&request.form(\"Antal1\")&\"\', \'\"&request.form(\"Antal2\")&\"\', \'\"&request.form(\"Antal3\")&\"\', \'\"&request.form(\"Antal4\")&\"\', \'\"&request.form(\"kupon1\")&\"\', \'\"&request.form(\"kupon2\")&\"\', \'\"&request.form(\"kupon3\")&\"\', \'\"&request.form(\"kupon4\")&\"\')\"
dbConn.Execute(sql)

dbConn.Close
Set dbConn = Nothing

Response.redirect(\"minfil.asp\")

Avatar billede webbe Nybegynder
14. maj 2001 - 13:01 #15
Jeg går ud fra at det kun er selve din insert-statement du ville  have lavet!
Avatar billede webbe Nybegynder
14. maj 2001 - 13:08 #16
Hovsa - overså lige det med de 1000!

Hvis det skal med så skal du lige lave et tjek på dit ID-felt først:

<%
Dim rs, sql, sql1

Set dbConn = Server.CreateObject(\"ADODB.Connection\")
dbConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"/_private/Orders.mdb\")

Set rs = Server.createobject(\"ADODB.Recordset\")
rs.open \"SELECT * FROM tablename ORDER BY OrderId ASC\", dbConn, 1, 3

If rs(\"OrderId\") = \"1000\" Then
  sql = \"DELETE * FROM tablename WHERE OrderId = 1 ORDER BY OrderId ASC\"
  dbConn.Execute(sql)
  sql1 = \"INSERT INTO.......\"
  dbConn.Execute(sql1)
  response.redirect(\"minfil.asp\")
Else
  sql1 = \"INSERT INTO.......\"
  dbConn.Execute(sql1)
  response.redirect(\"minfil.asp\")
End if
%>
Avatar billede webbe Nybegynder
14. maj 2001 - 13:15 #17
Med hensyn til datoen kan du bare sige:

INSERT INTO tablename () VALUES (\"&\"\'\"&date&\"\', \'\"&...)\" isetdet for request.form(\"TimeNow\")
Avatar billede webbe Nybegynder
14. maj 2001 - 13:17 #18
Så uanset havd bliver din INSERT-statement følgende:

sql = \"INSERT INTO tablename (TimeNow, ArticleId, LevId, CookieFirma, CokkieAtt, CookieAdresse1, CookieAdresse2, CookiePostnr, CookieBynavn, CookieTelefon, CookiEmail, Antal1, Antal2, Antal3, Antal4, Kupon1, Kupon2, Kupon3, Kupon4) VALUES (\"&\"\'\"&date&\"\', \'\"&request.form(\"ArticleId\")&\"\', \'\"&request.form(\"LevId\")&\"\', \'\"&request.form(\"CookieFirma\")&\"\', \'\"&request.form(\"CookieAtt\")&\"\', \'\"&request.form(\"CookieAdresse1\")&\"\', \'\"&request.form(\"CookieAdresse2\")&\"\', \'\"&request.form(\"CookiePostnr\")&\"\', \'\"&request.form(\"CookieBynavn\")&\"\', \'\"&request.form(\"CookieTelefon\")&\"\', \'\"&request.form(\"CookiEmail\")&\"\', \'\"&request.form(\"Antal1\")&\"\', \'\"&request.form(\"Antal2\")&\"\', \'\"&request.form(\"Antal3\")&\"\', \'\"&request.form(\"Antal4\")&\"\', \'\"&request.form(\"kupon1\")&\"\', \'\"&request.form(\"kupon2\")&\"\', \'\"&request.form(\"kupon3\")&\"\', \'\"&request.form(\"kupon4\")&\"\')\"
dbConn.Execute(sql)

Avatar billede kartolux Nybegynder
14. maj 2001 - 15:00 #19
Kan du ikke stykke det sammen til et helt stykke kode? - Jeg forstår det ikke selv :0)
Avatar billede webbe Nybegynder
14. maj 2001 - 15:06 #20
<%
Dim rs, sql, sql1

Set dbConn = Server.CreateObject(\"ADODB.Connection\")
dbConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"/_private/Orders.mdb\")

Set rs = Server.createobject(\"ADODB.Recordset\")
rs.open \"SELECT * FROM tablename ORDER BY OrderId ASC\", dbConn, 1, 3

If rs(\"OrderId\") = \"1000\" Then
  sql = \"DELETE * FROM tablename WHERE OrderId = 1 ORDER BY OrderId ASC\"
  dbConn.Execute(sql)
  sql1 = \"INSERT INTO tablename (TimeNow, ArticleId, LevId, CookieFirma, CokkieAtt, CookieAdresse1, CookieAdresse2, CookiePostnr, CookieBynavn, CookieTelefon, CookiEmail, Antal1, Antal2, Antal3, Antal4, Kupon1, Kupon2, Kupon3, Kupon4) VALUES (\"&\"\'\"&date&\"\', \'\"&request.form(\"ArticleId\")&\"\', \'\"&request.form(\"LevId\")&\"\', \'\"&request.form(\"CookieFirma\")&\"\', \'\"&request.form(\"CookieAtt\")&\"\', \'\"&request.form(\"CookieAdresse1\")&\"\', \'\"&request.form(\"CookieAdresse2\")&\"\', \'\"&request.form(\"CookiePostnr\")&\"\', \'\"&request.form(\"CookieBynavn\")&\"\', \'\"&request.form(\"CookieTelefon\")&\"\', \'\"&request.form(\"CookiEmail\")&\"\', \'\"&request.form(\"Antal1\")&\"\', \'\"&request.form(\"Antal2\")&\"\', \'\"&request.form(\"Antal3\")&\"\', \'\"&request.form(\"Antal4\")&\"\', \'\"&request.form(\"kupon1\")&\"\', \'\"&request.form(\"kupon2\")&\"\', \'\"&request.form(\"kupon3\")&\"\', \'\"&request.form(\"kupon4\")&\"\')\"
  dbConn.Execute(sql1)
  response.redirect(\"minfil.asp\")
Else
  sql1 = \"INSERT INTO tablename (TimeNow, ArticleId, LevId, CookieFirma, CokkieAtt, CookieAdresse1, CookieAdresse2, CookiePostnr, CookieBynavn, CookieTelefon, CookiEmail, Antal1, Antal2, Antal3, Antal4, Kupon1, Kupon2, Kupon3, Kupon4) VALUES (\"&\"\'\"&date&\"\', \'\"&request.form(\"ArticleId\")&\"\', \'\"&request.form(\"LevId\")&\"\', \'\"&request.form(\"CookieFirma\")&\"\', \'\"&request.form(\"CookieAtt\")&\"\', \'\"&request.form(\"CookieAdresse1\")&\"\', \'\"&request.form(\"CookieAdresse2\")&\"\', \'\"&request.form(\"CookiePostnr\")&\"\', \'\"&request.form(\"CookieBynavn\")&\"\', \'\"&request.form(\"CookieTelefon\")&\"\', \'\"&request.form(\"CookiEmail\")&\"\', \'\"&request.form(\"Antal1\")&\"\', \'\"&request.form(\"Antal2\")&\"\', \'\"&request.form(\"Antal3\")&\"\', \'\"&request.form(\"Antal4\")&\"\', \'\"&request.form(\"kupon1\")&\"\', \'\"&request.form(\"kupon2\")&\"\', \'\"&request.form(\"kupon3\")&\"\', \'\"&request.form(\"kupon4\")&\"\')\"
  dbConn.Execute(sql1)
  response.redirect(\"minfil.asp\")
  response.redirect(\"minfil.asp\")
End if
%>

Sådan du! ;o)
Avatar billede kartolux Nybegynder
14. maj 2001 - 15:11 #21
Okay - tester det lige.

Iøvrigt - lad os nu sige, at der er 1000 poster i databasen, slettes den ældste så altid først? Altså hver gang, der skrives en ny?
Avatar billede webbe Nybegynder
14. maj 2001 - 15:15 #22
Ja - det skulle den gerne gøre....i hvert fald set ud fra at den post med id=1 er den der er lagt først i tabellen og dermed er den ældste!

Du skal lige være opmærksom på at der hvor der står \"tablename\" i sql-sætningen skal det erstattes med navnet på din tabel og IKKE navnet på din database!
Avatar billede kartolux Nybegynder
14. maj 2001 - 15:17 #23
Okay :0)
Avatar billede kartolux Nybegynder
14. maj 2001 - 16:20 #24
Det ser ud til at virke, med jeg har problemer. Hvis der er æøå i data kommer der en fejl: Invalid character

Hvordan retter man det?

Jeg har også problemer, hvis jeg sætter \" tegn i formularens felter.

Hvordan sikres det, at ALT bliver smidt ned i felterne - ligegyldigt hvordan det ser ud?
Avatar billede webbe Nybegynder
15. maj 2001 - 08:41 #25
Hmmm - det undrer mig sq!

Har du defineret dine felter som notat-felter???
Avatar billede kartolux Nybegynder
15. maj 2001 - 10:53 #26
Undskyld - jeg har nu løst problemerne, lavet databasen, og alt fungerer efter hensigten. Det var kun et spørgsmål om at sætte de rigtige valideringsregler på formens felter.

Du har løst opgaven som forventet. Tusind tak for hjælpen  :0)
Avatar billede webbe Nybegynder
15. maj 2001 - 10:56 #27
Og så kun til de 60 point???? ;o)

Synes jeg kunne se du lovede wof op til 200!! *GG*

Ej - det er okay....mener ikke det var så stort et problem at løse, så det retfærdiggjorde hele 200 point! ;o)

Er glad for du kunne bruge løsningen!
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