Avatar billede lifo Nybegynder
30. oktober 2004 - 09:07 Der er 14 kommentarer og
1 løsning

upper() problem med danske tegn

jeg bruger FireBird 1.51 embedded

og har problemer med at lave en søgning hvor der er æøå og é i

for at det skal ignorere case så bruger jeg upper(..)
men den konverterer ikke æøå og é til upper men de forbliver små

hvordan skal jeg takle dette problem ?
Avatar billede hmortensen Nybegynder
30. oktober 2004 - 09:17 #1
Prøv at kigge her:
http://eksperten.dk/spm/521862
Avatar billede lifo Nybegynder
30. oktober 2004 - 11:38 #2
det er nok ikke problem med charset
det var til None og det fungerede fint at indsætte og selecte
æøå bliver sat ind og vises rigtigt

problemet er at funktionen upper() den kan ikke håntere æøå

har prøvet at sætte det til unicode_fss og der er ingen forskel
Avatar billede hmortensen Nybegynder
30. oktober 2004 - 11:43 #3
Hvad med:
UPPER(field COLLATE DA_DA)
Avatar billede lifo Nybegynder
30. oktober 2004 - 12:40 #4
ja måske
fandt selv lidt om callate

men DA_DA tilhører kun til ISO8859_1
og om jeg prøver at connecte til en database hvor jeg har
Charset=ISO8859_1 i min connection string
så får jeg en fejl der siger

bad parameters on attach or create database
character set iso8859_1 is not defined

den opretter godt nok databasen med sharset sat til iso8859_1
men jeg kan ikke connecte til den
det er i open() jeg får fejlen
Avatar billede hmortensen Nybegynder
30. oktober 2004 - 13:06 #5
Jeg kan desværre ikke hjælpe dig med det.
Jeg har aldrig selv stiftet bekendskab med Interbase, jeg søgte blot efter problemet på google.
Avatar billede pellelil Nybegynder
01. november 2004 - 08:10 #6
Upper virker fint hvis blot du i databasen har valgt det rigtige charset/collate. Jeg bruger FB 1.5.1 og databasen er created med Charset iso8859_1 og alle felter ligeledes oprettet med iso8859_1/DA_DA (samme gælder for mine domains).

Når du creater en database skal du angive charset, og når man efterfølgende connecter til denne database SKAL man anvende samme charset (eller kan man få nogle "sjove fejl").
Avatar billede lifo Nybegynder
04. november 2004 - 09:23 #7
pellelil kan ikke få et at fungere
det fungerer fint at oprette en database
men når jeg connecter til den og skal oprette tabeller så får jeg fejl
har lige lagt problemet på hylden da det ikke er så vigtigt lige nu

ved ikke rigtigt hvem der skal have points
tror næsten at i skal dele dem lidt

smid et svar
Avatar billede pellelil Nybegynder
04. november 2004 - 09:27 #8
Som sagt SKAL du connecte til databasen med samme Charset som den er created, og hvis dine felter/domains er oprettes med samme charset/collate så burde det virke (har dog ikke prøvet med embedded versionen, men kan ikke forestille mig at den opfører sig anderledes) !?
Avatar billede lifo Nybegynder
04. november 2004 - 09:37 #9
jeg får følgende fejl når jeg prøver at åbne min connection

Character set iso8859_1 is not defined

min connection string ser sådan ud
DAL.connectionString =
"User=SYSDBA;"+
"Password=masterkey;"+
"Database="+DAL.database_path+";"+
"DataSource=127.0.0.1;"    +
"Port=3050;"+
"Dialect=3;"+
"Charset=iso8859_1;"+
"Role=;"+
"Connection lifetime=15;"+
"Pooling=true;"+
"Packet Size=8192;"+
"ServerType=1";
Avatar billede lifo Nybegynder
04. november 2004 - 09:39 #10
jeg opretter databasen med følgende og det fungerer fint

Hashtable ht = new Hashtable();
ht.Add("Database",DAL.database_path);
ht.Add("User","SYSDBA");
ht.Add("Password","masterkey");
ht.Add("Dialect","3");
ht.Add("DataSource","localhost");
ht.Add("Port","3050");
ht.Add("ServerType","1");
ht.Add("Charset","iso8859_1");

FbConnection.CreateDatabase(ht);
Avatar billede pellelil Nybegynder
04. november 2004 - 09:45 #11
Hvilke componenter bruger du? Jeg anvender selv IBO (Interbase Objects) som er "paywhere", men hvis det skal være gratis vil jeg foreslå at du kigger på IBX.
Avatar billede lifo Nybegynder
04. november 2004 - 09:48 #12
hmm har lige prøvet at instalere firebird
altså ikke at køre som embedded og så fungerer det fint ?
så det må være en bug i embedded versionen eller dataprovideren
Avatar billede pellelil Nybegynder
04. november 2004 - 09:55 #13
OK !?
Avatar billede lifo Nybegynder
04. november 2004 - 10:23 #14
fandt problemet ved at lede i bug reports
det viste sig at jeg manglede at have en dll fil

for at understøtte iso8859_1 skal man også have fbintl.dll i
c:\mit program\intl\fbintl.dll
Avatar billede pellelil Nybegynder
04. november 2004 - 10:27 #15
OK - det vil jeg skrive mig bag øret til når/hvis jeg selv skal rode med Embedded udgaven ;-)
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
Computerworld tilbyder specialiserede kurser i database-management

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