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


Sortera datum i en databas?

Postades av 2001-02-13 14:21:00 - Erik Carlstrom, i forum visual basic - allmänt, Tråden har 5 Kommentarer och lästs av 570 personer

Hur gör jag för att sortera efter datum i en databas (*.mdb) med VB härifrån:


Data1.RecordSource = "select * from " + frmStart.txtUserName_ & "tider" (vad skriver jag här för att sortera?)

Data1.Refresh


Svara

Sv: Sortera datum i en databas?

Postades av 2001-02-13 14:35:00 - Andreas Hillqvist

Sist i frågan använder du ORDER BY <FältNamn>.
Något sånt här:

Data1.RecordSource = "SELECT * " + _
"FROM " + frmStart.txtUserName & "tider " + _
"ORDER BY Datumfält"

Data1.Refresh

Tips: Det är nog bättre att använda en tabell men ett fält för vems tid det är. Istället för en tabell för varje användare?

Om man vill vara riktigt snygg så skapar man en tabell för användare och anger vilken användare som äger tidsposten med idnummer från den tabellen.


Svara

Sv: Sortera datum i en databas?

Postades av 2001-02-13 20:00:00 - Peter Holm

Andreas du som är inne på optimeringssvängen..... Varför adderar du strängar med + operatoren istället för med & operatorn ???

Alla vet vi väl rent generellt att aritmetiska operationer tar längre tid att exekvera än logiska.

Kör denna kod och kolla.... Spara ca 42% exekveringstid... Det kallar jag optimering eller..... ?

=============================================

Option Explicit

Private Declare Function GetTickCount Lib "kernel32" () As Long
Private strA As String
Private strB As String
Private startA As Single
Private startB As Single
Private i As Long

Private Sub Command1_Click()
strA = ""
startA = GetTickCount()
For i = 0 To 32767
strA = strA + "*"
Next i
Debug.Print GetTickCount() - startA

strB = ""
startB = GetTickCount()
For i = 0 To 32767
strB = strB & "*"
Next i
Debug.Print GetTickCount() - startB
End Sub

/peterh <=> hpeter


Svara

Sv: Sortera datum i en databas?

Postades av 2001-02-13 22:42:00 - Andreas Hillqvist

Ledsen att behöva göra dig besviken. Din utvärdering av hastigheten är felaktig. Om du testar att upprepa anropen ytterligare några gång. Så får du ett annat resultat. Får i alla fall jag.

Mitt resultat:
strA1: 4367
strB1: 3755
strA2: 3765
strB2: 3766
strA3: 3765
strB3: 3776

Skillnaden är inte så stor. Det är det första anropet som får tar en smäll. Denna erfarenhet har jag fått efter otalig optimering... :O)

Detsutom testar du fel operation. Det som tar tid i looparna är att strängen växer. I koden jag föreslog slog jag samman strängkonstanter och en sträng variabel.

Ett mer korrekt test skulle vara något sådant här(Denna kod går betydligt snabbar, därför tvungen att öka antalet loopar):

Option Explicit

Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Command1_Click()
Dim strA As String
Dim strB As String
Dim startA As Single
Dim startB As Single
Dim i As Long
Const Times = 1000000
startA = GetTickCount()
For i = 0 To Times
strA = "*" + "*"
Next i
Debug.Print "strA1: "; GetTickCount() - startA

startB = GetTickCount()
For i = 0 To Times
strB = "*" & "*"
Next i
Debug.Print "strB1: "; GetTickCount() - startB

startA = GetTickCount()
For i = 0 To Times
strA = "*" + "*"
Next i
Debug.Print "strA2: "; GetTickCount() - startA

startB = GetTickCount()
For i = 0 To Times
strB = "*" & "*"
Next i
Debug.Print "strB2: "; GetTickCount() - startB

startA = GetTickCount()
For i = 0 To Times
strA = "*" + "*"
Next i
Debug.Print "strA3: "; GetTickCount() - startA

startB = GetTickCount()
For i = 0 To Times
strB = "*" & "*"
Next i
Debug.Print "strB3: "; GetTickCount() - startB

End Sub




Svara

Sv: Sortera datum i en databas?

Postades av 2001-02-13 22:54:00 - Andreas Hillqvist

Resultatet är dock lite tvetydigt. Har fått att + operationen är snabbare och ibland & operationen.

strA1: 781
strB1: 761
strA2: 771
strB2: 761
strA3: 741
strB3: 771

strA1: 791
strB1: 841
strA2: 751
strB2: 801
strA3: 741
strB3: 791

Om vi tittar i hjälpen:
& Operator - Used to force string concatenation of twoexpressions.
+ Operator - String concatenation

When you use the + operator, you may not be able to determine
whether addition or string concatenation will occur.
Use the & operator for concatenation to eliminate ambiguity and
provide self-documenting code.

Ej rekomenderat att allmänt använda + för att slå ihop strängar. Men om man slår ihop sträng konstanter, ser jag inget fel i att använda + Operatorn. Prestanda mässigt är de nog likvärdiga.

Men du gör rätt i att avråda mig från att använda den...



Svara

Sv: Sortera datum i en databas?

Postades av 2001-02-13 23:22:00 - Andreas Hillqvist

Alternativt test(Minskar behovet av antalet loopar):

Private Sub Command1_Click()
Dim strA As String
Dim strB As String
Dim startA As Single
Dim startB As Single
Dim i As Long
Const Times = 200000
startA = GetTickCount()
For i = 0 To Times
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
Next i
Debug.Print "strA1: "; GetTickCount() - startA

startB = GetTickCount()
For i = 0 To Times
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
Next i
Debug.Print "strB1: "; GetTickCount() - startB

startA = GetTickCount()
For i = 0 To Times
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
Next i
Debug.Print "strA2: "; GetTickCount() - startA

startB = GetTickCount()
For i = 0 To Times
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
Next i
Debug.Print "strB2: "; GetTickCount() - startB

startA = GetTickCount()
For i = 0 To Times
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
strA = "*" + "*"
Next i
Debug.Print "strA3: "; GetTickCount() - startA

startB = GetTickCount()
For i = 0 To Times
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
strB = "*" & "*"
Next i
Debug.Print "strB3: "; GetTickCount() - startB

End Sub



Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 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

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 616
27 953
271 709
5 768
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