/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Update tekst der indeholder æ,ø eller å
Fra : Hansen


Dato : 20-07-06 11:31

Hej

Jeg skal updatere et tekst felt med en tekst der indeholder et å. Når jeg
gør det forsvinder å'et, så "måske" bliver til "mske". Når jeg opretter
databasen og indsætter data til at starte med er der ingen problemer med æ,ø
eller å - det er kun i mine update scripts. Mit script er:

UPDATE [dbo].[TextControlLanguage]
SET [Text] = 'Skabelonen er måske ikke gemt. Vil du gemme den?'
WHERE TextControlID = 1217
AND LanguageID = 1

Hvorfor går det godt når jeg indsætter data, men ikke når jeg bruger update?
Og hvordan får jeg æ,ø og å med i mine update scripts?

Det er en SQL2000 database.

/Hansen



 
 
Jens Gyldenkærne Cla~ (20-07-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-07-06 12:34

Hansen skrev:

> UPDATE [dbo].[TextControlLanguage]
> SET [Text] = 'Skabelonen er måske ikke gemt. Vil du gemme
> den?' WHERE TextControlID = 1217
> AND LanguageID = 1

Prøv at bruge unicode-markøren N foran strengen:

UPDATE [dbo].[TextControlLanguage]
SET [Text] = N'Skabelonen er måske ikke gemt. Vil du gemme
den?' WHERE TextControlID = 1217
AND LanguageID = 1


> Hvorfor går det godt når jeg indsætter data, men ikke når jeg
> bruger update?

Jeg ved ikke hvorfor der er forskel på insert og update her -
bruger du samme driver?


--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Hansen (20-07-2006)
Kommentar
Fra : Hansen


Dato : 20-07-06 12:40

>> UPDATE [dbo].[TextControlLanguage]
>> SET [Text] = 'Skabelonen er måske ikke gemt. Vil du gemme
>> den?' WHERE TextControlID = 1217
>> AND LanguageID = 1
>
> Prøv at bruge unicode-markøren N foran strengen:
>
> UPDATE [dbo].[TextControlLanguage]
> SET [Text] = N'Skabelonen er måske ikke gemt. Vil du gemme
> den?' WHERE TextControlID = 1217
> AND LanguageID = 1

Det hjalp desværre ikke

>> Hvorfor går det godt når jeg indsætter data, men ikke når jeg
>> bruger update?
>
> Jeg ved ikke hvorfor der er forskel på insert og update her -
> bruger du samme driver?

Hvordan ser jeg det?

/Hansen



Jens Gyldenkærne Cla~ (20-07-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-07-06 12:50

Hansen skrev:

>> UPDATE [dbo].[TextControlLanguage]
>> SET [Text] = N'Skabelonen er måske ikke gemt. Vil du gemme
>> den?' WHERE TextControlID = 1217
>> AND LanguageID = 1
>
> Det hjalp desværre ikke

Hvilken felttype anvender du? - nvarchar/nchar eller varchar/char?
Hvis du ikke anvender en af unicodetyperne (n-udgaverne), så prøv
at skifte til dem.

Jeg anvender konsekvent n-typerne til alle tekstfelter hvor der kan
forekomme andet end ascii-tegn.


>> Jeg ved ikke hvorfor der er forskel på insert og update her -
>> bruger du samme driver?
>
> Hvordan ser jeg det?

Hvor kører du forespørgslerne fra? Query Analyzer, Enterprice
Manager eller en ektern applikation (asp-side, odbc eller
lignende).

--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Hansen (20-07-2006)
Kommentar
Fra : Hansen


Dato : 20-07-06 13:02


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns98068CBB3BD51jcdmfdk@gyrosmod.dtext.news.tele.dk...
> Hansen skrev:
>
>>> UPDATE [dbo].[TextControlLanguage]
>>> SET [Text] = N'Skabelonen er måske ikke gemt. Vil du gemme
>>> den?' WHERE TextControlID = 1217
>>> AND LanguageID = 1
>>
>> Det hjalp desværre ikke
>
> Hvilken felttype anvender du? - nvarchar/nchar eller varchar/char?

Jeg anvender ntext

>>> Jeg ved ikke hvorfor der er forskel på insert og update her -
>>> bruger du samme driver?
>>
>> Hvordan ser jeg det?
>
> Hvor kører du forespørgslerne fra? Query Analyzer, Enterprice
> Manager eller en ektern applikation (asp-side, odbc eller
> lignende).

Før kørte jeg updaten fra et eksternt program og kiggede i databasen med
Enterprice Manager. Nu prøvede jeg at køre updaten (med N'<tekst>') inde fra
EM. og der virkede det som det skulle. Så altså er der noget fesent med det
eksterne program.
Det er ikke noget jeg har programmeret, men jeg har sourcekoden til det, så
den kigger jeg lige igennem. Hvad skal jeg kigge specielt meget efter?

/Hansen



Jens Gyldenkærne Cla~ (20-07-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-07-06 13:30

Hansen skrev:

>> Hvilken felttype anvender du? - nvarchar/nchar eller
>> varchar/char?
>
> Jeg anvender ntext

Har du brug for så store tekstmængder at det ikke kan være i en
nvarchar?


> Før kørte jeg updaten fra et eksternt program og kiggede i
> databasen med Enterprice Manager. Nu prøvede jeg at køre
> updaten (med N'<tekst>') inde fra EM. og der virkede det som
> det skulle. Så altså er der noget fesent med det eksterne
> program. Det er ikke noget jeg har programmeret, men jeg har
> sourcekoden til det, så den kigger jeg lige igennem. Hvad skal
> jeg kigge specielt meget efter?

Er teksterne hardcodet i kildekoden? Hvis ja, er filerne gemt som
utf eller ansi?

Tjek hvordan forbindelsen mellem programmet og databasen oprettes -
og prøv evt. at skifte fra ODBC til OLEDB hvis det er muligt.


--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Hansen (20-07-2006)
Kommentar
Fra : Hansen


Dato : 20-07-06 13:38


> Har du brug for så store tekstmængder at det ikke kan være i en
> nvarchar?

Det er en database jeg har overtaget, så det er ikke min beslutning

> Er teksterne hardcodet i kildekoden? Hvis ja, er filerne gemt som
> utf eller ansi?

Programmet læser externe .sql filer som er lavet i notepad.

> Tjek hvordan forbindelsen mellem programmet og databasen oprettes -
> og prøv evt. at skifte fra ODBC til OLEDB hvis det er muligt.

Det prøver jeg lige at se. Det er et C# .Net program som benytter de
indbyggede sqlConnection og Transaction klasser, så det burde være muligt.

Rigtig mange tak for hjælpen indtil videre

/Hansen



Jens Gyldenkærne Cla~ (20-07-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-07-06 14:17

Hansen skrev:

>> Har du brug for så store tekstmængder at det ikke kan være i
>> en nvarchar?
>
> Det er en database jeg har overtaget, så det er ikke min
> beslutning


Klart nok - men det kan jo være en grund til at kigge på
opbygningen igen.


>> Er teksterne hardcodet i kildekoden? Hvis ja, er filerne gemt
>> som utf eller ansi?

> Programmet læser externe .sql filer som er lavet i notepad.

Oh - det er i hvert fald en mulig fejlkilde. Som et hurtigt tjek
kan du prøve at gemme en af sql-filerne som utf (hvis den er gemt
som ansi nu), og se om det ændrer noget.

Ellers skal du nok spørge i dotnet-gruppen om hvordan man definerer
tegnsættet i de filer der læses.


--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Hansen (20-07-2006)
Kommentar
Fra : Hansen


Dato : 20-07-06 14:30

>>> Er teksterne hardcodet i kildekoden? Hvis ja, er filerne gemt
>>> som utf eller ansi?
>
>> Programmet læser externe .sql filer som er lavet i notepad.
>
> Oh - det er i hvert fald en mulig fejlkilde. Som et hurtigt tjek
> kan du prøve at gemme en af sql-filerne som utf (hvis den er gemt
> som ansi nu), og se om det ændrer noget.
>
> Ellers skal du nok spørge i dotnet-gruppen om hvordan man definerer
> tegnsættet i de filer der læses.

Har i mellemtiden debugget lidt på det program der læser sql filerne, og som
du ganske rigtigt skriver så er det faktisk her det går galt.
Så det er ikke database adgangen der er synderen. Jeg hopper over i dotnet
og ser om der er nogen der kan finde ud af at læse æ,ø,å fra en tekst fil


Endnu engang tak for hjælpen!

/Hansen



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste