Avatar billede fennec Nybegynder
15. september 2008 - 14:59 Der er 9 kommentarer og
1 løsning

€ bliver til ? ved indsættelse i database.

Jeg er løbet i et lille problem med € tegnet. Vi har et site som er intregreret til en SAP database, og her kan man oprette ordre. Problemet er at når en person bruger € tegnet i en kommentar bliver det til ? i databsen.

Det helt mærkelige er at SAP har et komponent (kaldet DIServer) som indsætter orderlinjerne, men som ikke kan indsætte kommentar, så det sker via en helt normal "insert .." kommando. Denne DI server har vi haft utallige problemer med specialtegn, men netop € virker fint. Problemet sker kun ved normal indsættelse.

Jeg har lavet lidt test og uanset hvad kan jeg ikke få € tegnet indsat. Her er min test:
tmp = "test med € tegnet"
Conn.execute("insert into aaTest(test) values('"& tmp &"')")

Mit spørgsmål er:
Hvordan pokker får jeg indsat € tegnet rigtig i databasen??
Avatar billede erikjacobsen Ekspert
15. september 2008 - 17:02 #1
Hvilket tegnsæt forventer SAP? Hvilket tegnsæt anvender din ASP-side?
Avatar billede fennec Nybegynder
16. september 2008 - 08:19 #2
Databasen kører på SQL_Latin1_General_CP850_CI_AS.
ASP har jeg prøvet med utf8, iso-8859-1, iso-8859-15 og windows-1250. Ingen med held. Utf8 ændrede dog € til "â'¬" istedet.

Jeg er ret sikker på det er tegnsettet som er problemet, jeg ved bare ikke hvilket andre jeg skal prøve :(

Da det er en SAP database kan jeg ikke databasen's format...
Avatar billede erikjacobsen Ekspert
16. september 2008 - 09:18 #3
Du kan ikke ændre formatet, formoder jeg. Codepage 850 indeholder vist ingen eurotegn, og hvis du ikke kan ændre den til noget andet i SAP, fx Latin1_General_CI_AS (= Windows 1252), enten database eller visning, så har jeg ingen ideer.
Avatar billede fennec Nybegynder
16. september 2008 - 09:38 #4
Den kan fint indeholde € tegnet.

Hvis jeg skriver det direkte i eller går via DI-Serveren (SAP kommunikations interface) kan jeg fint gemme € tegnet. Det er kun ved almindelig gem jeg har problemet...
Avatar billede erikjacobsen Ekspert
16. september 2008 - 12:58 #5
Ja, man kan altid putte bytes ind, der svarer til et euro-tegn i et eller andet tegnsæt. Kan du finde et felt med et korrekt vist euro-tegn, så kan du hvile bytes det svarer til.
Avatar billede fennec Nybegynder
16. september 2008 - 13:34 #6
Æv, det var ikke hvad jeg håbede at komme til at høre, men det kan nok ikke være anderledes :(

Men ellers mange tak for hjælpen.

Og du er stadig ikke på point?? For ellers må du smide et svar :)
Avatar billede erikjacobsen Ekspert
16. september 2008 - 14:01 #7
Nej tak. Men fortæl os hvis du finder ud af noget.
Avatar billede fennec Nybegynder
16. september 2008 - 14:04 #8
Skal jeg gøre...
Avatar billede fennec Nybegynder
16. september 2008 - 14:35 #9
Jeg har sku fundet ud af det :)
Denne hjalp mig (selv om den er til Oracle):
http://forums.oracle.com/forums/thread.jspa?threadID=621437

Ved at indsætte € med NCHAR(8364) koden. Jeg skal dog lige have fundet ud af hvad der sker sikkerheds mæssig, men det skal jeg nok finde ud af. Her er min test kode:

tmp = "test med € tegnet"
tmp = replace(tmp,"€","'+ NCHAR(8364) +'")
oConn.execute("insert into aaTest(test) values('"& tmp &"')")

Den ændre inserten så den bliver til:
insert into aaTest(test) values('test med '+ NCHAR(8364) +' tegnet')
Avatar billede erikjacobsen Ekspert
16. september 2008 - 14:41 #10
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

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