Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Uppdatera access databas

Postades av 2007-02-11 16:29:57 - Joacim Kindvall, i forum asp - allmänt, Tråden har 6 Kommentarer och lästs av 969 personer

Hej!
Jag gör en webshop och allt funkar som det skall utan problemet jag hör av mig till er om.
Jag har fört in antal produkter som finns i lager i en access databas, och när personerna handlat så skall det automatiskt minska i databasen, det är denna uppdatering av databasen jag inte klurar ut.
koden som jag får fram artiklarna ser ut som följer.
<code>
for v= 0 to numRecords
tmp = printColumn( Rs.Fields("title").Value, 28)
Details = Details & printColumn( itemCount(Rs.Fields("id").Value,false), 3) & _
printColumn( Rs.Fields("title").Value, 28) & _
printColumn(Rs.Fields("price").Value, 10) & _
(itemCount(Rs.Fields("id").Value,false) * Rs.Fields("price").Value )
Details = Details & vbcrlf
TotalPrice = TotalPrice + itemCount( Rs.Fields("id").Value, False) * Rs.Fields("price").Value
totalvikt = Totalvikt + itemCount( Rs.Fields("id").Value, False) * Rs.Fields("vikt").Value
'Response.Write itemCount(Rs.Fields("id").Value,false) & Rs.Fields("title").Value & "<br>" '<******Här listas antal och titel.
Rs.MoveNext
next</code>
Där det står "här listas antal och titel" det är antalet som skall uppdateras i kolummen antal i tabellen shitems. Värdet skall minska med antalet som man får fram från itemCount(Rs.Fields("id").Value,false).
Jag får fram antalet om jag kör
<code>Response.Write Rs.Fields("antal").Value - itemCount(Rs.Fields("id").Value,false)</code>
fast uppdateringen får jag inte ihop.
<code>
Sql = "update shItems set antal = '"& Rs.Fields("antal").Value - itemCount(Rs.Fields("id").Value,false)&"' where id = "& itemCount(Rs.Fields("id").Value,false)
</code> funkar inte, någon som har en lösning?
Hoppas ni förstår vad jag menar.
//Jocke


Svara

Sv: Uppdatera access databas

Postades av 2007-02-11 18:11:30 - Joacim Kindvall

Kom på lösningen själv.
<code>
nr=Rs.Fields("antal").Value - itemCount(Rs.Fields("id").Value,false)
'Response.Write nr 'Rs.Fields("antal").Value - itemCount(Rs.Fields("id").Value,false)
Sql = "update shItems set antal = '"& nr &"' where id = "& Rs.Fields("id").Value
conn.execute(sql)
</code>


Svara

Sv:Uppdatera access databas

Postades av 2007-02-11 20:50:39 - Martin Adrian

>Sql = "update shItems set antal = '"& nr &"' where id = "& Rs.Fields("id").Value

Inte för att det har något med det här att göra men jag skulle inte sova gott om natten om jag skrivit ovanstående kod.
1. Antal sparas i databasen som en textsträng
2. Rs.Fields("id").Value konverteras implicit till en sträng

Båda sakerna kommer att ge problem med formattering (tex decimalavgränsare) förr eller senare.


Svara

Sv: Uppdatera access databas

Postades av 2007-02-13 23:40:50 - Joacim Kindvall

Vad tycker du är bättre då??


Till något annat också.
Hur sorterar jag denna kod så namnen i kolummen title hamnar i bokstavsordning?

Rs.Open "SELECT * FROM Items WHERE category = " & Request.QueryString("category")

Har försökt använda ORDER by title asc efter, men får bara en massa felmeddelanden.


Svara

Sv:Uppdatera access databas

Postades av 2007-02-14 08:03:39 - Johan Djupmarker

Om ditt exempel fungerar (=om category är ett tal) så borde detta fungera:

Rs.Open "SELECT * FROM Items WHERE category = " & Request.QueryString("category") & " ORDER BY [title]"

/Johan


Svara

Sv:Uppdatera access databas

Postades av 2007-02-14 11:31:31 - Andreas Hillqvist

En brist i din kod är möjligheten till "race condition". Tänk dig att två användare kör koden samtidigt.

Första användarens begäran hinner hämtar beräkna nr.
Första användarens begäran "haltas" eftersom tråden har förbrukat sin cykel.
Andra användaren hinner genomföra hela koden och uppdataera databasen.
Första användarens begäran återupptas och sparas över andra användarens uppdaterade värde.

Det är för detta transaktioner uppfanns.

Ett bättre alternativ för sql frågan är:

	Sql = "UPDATE shItems SET  antal = antal - " & itemCount(Rs.Fields("id").Value,false) & vbCrLf & _
	      "WHERE id = " & Rs.Fields("id").Value
	conn.execute sql

Då du genomför hämtning och sparning i en operation i databasen.

JAg rekomenderar starkt att du använder parameter frågor.


Svara

Sv: Uppdatera access databas

Postades av 2007-02-14 13:25:00 - Joacim Kindvall

Tack för svaren, får hoppas du har rätt Andreas ang anv 1 & 2 ifall dom använder koden samtidigt.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 169
27 952
271 704
722
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies