Vinnaren i pepparkakshustävlingen!
2009-10-09, 10:46
  #1
Medlem
Jag håller på med ett litet projekt i VB6.
Av "bekvämlighetsskäl" så lägger jag upp lite data i ett temporärt recordset.
(Alternativet är en array av UDT:er som jag sedan sorterar i egen kod, men jag tänkte slippa det...)
Därefter sorterar jag med namn som nyckel, så här:
RSn.Sort = ("namn ASC")
Problemet är då att Å kommer att sorteras som A
Fältet "namn" är specat: RSn.Fields.Append "namn", adVarChar, 50

Hur får jag sorteringen att bli korrekt (ur "svensk" synpunkt)?

/T
Citera
2009-10-09, 12:45
  #2
Moderator
Protons avatar
Varför inte plocka ut rätt data ur databasen med SQL på en gång? Verkar ju lite enklare, speciellt när man inte vet riktigt hur den här mystiska sort beter sej.?
Citera
2009-10-09, 12:59
  #3
Medlem
Citat:
Ursprungligen postat av Proton
Varför inte plocka ut rätt data ur databasen med SQL på en gång? Verkar ju lite enklare, speciellt när man inte vet riktigt hur den här mystiska sort beter sej.?
Det finns ju ingen databas!

Jag skapar ett recordset tillfälligt för att på ett enkelt sätt kunna sortera på lite olika sätt.

Alternativet är som sagt att skapa en array av UDT:er eller eventuellt en collection av objekt.

Att ta hjälp av ett recordset är mycket enklare, och jag har gjort det tidigare.
Men då hade jag inte problemet med ÅÄÖ i sorteringen..

/T
Citera
2009-10-12, 10:43
  #4
Medlem
desmoduss avatar
Vissa ADO-objekt har ju en property för detta som heter Locale Identifier, typ:
Kod:
myObject.Properties("Locale Identifier"

I en ado-connection kan man iaf använda den för att styra collation.

Men jag är osäker på om den är tillgänglig för recordsets och isåfall vilket värde den ska ha, men det borde ju gå att binga efter.
Citera
2009-10-13, 09:33
  #5
Medlem
Citat:
Ursprungligen postat av desmodus

Men jag är osäker på om den är tillgänglig för recordsets och isåfall vilket värde den ska ha, men det borde ju gå att binga efter.

Jag har kört det spåret (properties på recordsets), men det leder mig inte till målet..
Men, just nu har jag gett upp, och sorterar mina array:er av UDT:er själv.
Det är byngligt!

Idén om ett temporärt recordset är faktiskt överlägsen (flexibelt & snabbt), om man bortser från problemet med sortering som kan dyka upp i vissa lägen...

/T
Citera
2009-12-05, 17:39
  #6
Medlem
macka-pärs avatar
Citat:
Ursprungligen postat av tenor302
Jag har kört det spåret (properties på recordsets), men det leder mig inte till målet..
Men, just nu har jag gett upp, och sorterar mina array:er av UDT:er själv.
Det är byngligt!

Idén om ett temporärt recordset är faktiskt överlägsen (flexibelt & snabbt), om man bortser från problemet med sortering som kan dyka upp i vissa lägen...

/T

Om du på något vis har en Connection till en databas i din applikation så kan pröva följande:
rs.Open ..... (med Locale Identifier i Connection-strängen)
rs.ActiveConnection=Nothing

Du har nu en temporär recordset som du kan göra vad du vill med.

Om du inte har någon Connection i din applikation så kan du skapa en dummy via ex.vis Microsoft JET till en tom Access-databas. JET finns väl i alla Windows och en tom Access-databas går ju alltid att fixa till.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback