webForumDet fria alternativet

Access vs SQL, sortering V & W

4 svar · 559 visningar · startad av tlee

tleeMedlem sedan mars 2001290 inlägg
#1

Jag har lite problem här jag..

Jag har en Access 2000 databas(svensk) och en sql 2000 server(engelsk)

Problem blir det när jag sorterar och V och W inte sorteras lika på sql servern som på access..

SQL2000 Access2000
USB30 USB30
USB50 USB50
V32G2 W20PS
V32GD V32G2

Jag har sökt runt lite och hittade detta.
http://cgi.webforum.nu/wf/Forum11/HTML/003381.html

Här skriver LarsG

"Om man har MS SQL server 2000 så kan man använda collations dels då man skapar tabeller och dels vid select. Collations är namngivna sorteringsordningar, för svenska så finns t.ex.
SQL_SwedishStd_Pref_Cp1_CI_AS

Mer om collations finns här http://msdn.microsoft.com/library/default.asp?ShowPane=false&URL=/library/psdk/sql/ts_ca-co_5ell.htm "

------------------------------------------------------------------------------

Kan man använda denna för att sortera V och W korrekt, eller är det bara för ÅÄÖ?
Hur använder man collations, ett exempel vore på sin plats.. lägger man det i sin SELECTS sats ?

Vide har också gjort en lösning på detta..
http://cgi.webforum.nu/wf/Forum42/HTML/000126.html

Han skriver:

SQL = "Select * from tabell"
Set RS = databas.execute(SQL)
set RS2 = Server.CreateObject("ADODB.Recordset")
RS2.Fields.Append "fält1", adVariant, 50
RS2.Fields.Append "sortering", adInteger, 6
RS2.open

While NOT RS.EOF
RS2.AddNew
RS2("fält1") = RS("fält")
RS2("sortering") = Cint(ASC(RS("fält")))
RS2.Update
RS.MoveNext
Wend

RS2.sort "sortering asc"

While NOT RS2.EOF
Response.write RS2("fält1")
RS2.MoveNext
Wend

Men när jag använder den koden får jag fel på.
RS2.Fields.Append "fält1", adVariant, 50

som säger:

ADODB.Fields error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/sortering2.asp, line 17

Vad kan det bero på.. Helst skulle jag vilja ha en lösning där man slipper greja för mycket utan
bara ändrar i sitt SQL anrop..

/t

VideMedlem sedan dec. 19998 577 inlägg
#2

I mitt exempel måste ha adovbs.inc-filen, eller dess konstanter tillgängliga.

Sedan skall nog inte fälten heta "fält" med svenska tecken, byt ut dom mot "field" eller nått... :)

------------------
Doesn't 'expecting the unexpected" make the unexpected expected?
un.eyebew

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Syntaktiskt, om du vill använda en collation i en order by så ser det väl ut

select * from t
 order by c collate SQL_SwedishStd_Pref_Cp1_CI_AS

Nu har jag ingen aning om vad denna sorteringsordning innebär men du kan ju testa lite.

------------------
essentitia preter non sans multiplicandum

tleeMedlem sedan mars 2001290 inlägg
#4

okej grabbar.. nu funkar det..

Set DB_QUERY_TARGET = ConnectTarget.Execute("SELECT * FROM tbl_Products ORDER BY col_ArticleNr collate SQL_Scandinavian_Cp850_CS_AS;")

yeah baby.. tack som fan grabbar!..

/t

KoraxMedlem sedan apr. 20031 inlägg
#5

Access databas ?

Ok efter vad jag förstår så funkar detta bara på en SQL databas.
Men hur gör man med en access databas. Jag hittar inget som fungerar.

Handled mig vise män.
:q

129 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)