|
| 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
| |
|
|