Announcement

Collapse
No announcement yet.

Zeichensatz - einstellen? (Sonderzeichen falsch)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zeichensatz - einstellen? (Sonderzeichen falsch)

    Hallo,

    ich möchte gerne "alle" möglichen Sonderzeichen speichern können, ohne dass sie zu [] oder anderen Buchstaben konvertiert werden.

    Bspw. ist meine Feld in der Tabelle vom Typ nvarchar(max), aber wenn ich dort ein ≥ speichern will, konvertiert er mir das zu einem "=".

    Also denk ich natürlich, "ah ok, ein Zeichensatz Problem", aber wenn ich bei Database -> Right click -> Properties mir den angucke, und die Möglichkeiten, was ich da einstellen kann. "SQL_Latin1_General_CP1_CI_AS" ist Moment eingestellt, aber zu etwas sinnvoll ändern kann ich es nicht.

    Bin ich an der falschen Stelle? - wenn ja,wo muss ich suchen?

    und entscheidend: Was muss ich einstellen, damit es funktioniert?

    Danke bereits im Voraus.

    mfg
    Edit: Im übrigen arbeite ich mit stored procedures, an die ich Parameter übergebe... also paramized stored procedures. Zugreifen tue ich via VB auf die DB.
    Zuletzt editiert von blackgreetz; 31.03.2011, 12:33.

  • #2
    nvarchar kann unicode. Du brauchst also keine Zeichensatzkonfiguration.

    Der Fehler liegt zu 99% in deinem "Restsystem". Wie schaut den die SP aus?

    Comment


    • #3
      Originally posted by Bernhard Geyer View Post
      nvarchar kann unicode. Du brauchst also keine Zeichensatzkonfiguration. [...] . Wie schaut den die SP aus?
      Danke! Die Parameter hatten teilweise noch den alten Typ 'text', so dass an den entsprechenden Feldern die Zeichen verloren gingen.

      mfg

      Comment


      • #4
        Problem endete leider doch noch nicht:

        Wenn ich bspw folgende Code habe:

        Code:
        	SELECT @strToExec = ''
           
             [...]	
        
        	IF NOT @strParam IS NULL BEGIN
        		IF LEN(@strToExec) > 0 SELECT @strToExec = @strToExec + ', '
        		SELECT @strToExec = @strToExec + 'strParamField = N''' + REPLACE(@strParam,'''','''''') + ''''
        	END
        
        	IF LEN(@strToExec) > 0 BEGIN
        		SELECT @strToExec = N'UPDATE ProjectValues SET ' + @strToExec + N' WHERE intProjectID = ' + LTRIM(STR(@intProjectID))
        		EXEC(@strToExec)
        Wo muss ich jetzt überall das "N" angeben, damit meine Sonderzeichen im Parameter "strParam" mitgespeichert werden. Der Parameter hat den Typ nvarchar(max), d.h. ankommen sollten die Umlaute, denk ich mal..

        So wie es jetzt ist, funktioniert es leider nicht. [...] bedeutet nur, dass da noch mehr Felder sind, aber die alle wie das Replace-Teil aussehen, so dass ich sie nun weggelassen habe.

        Der Code ist übrigends in einer SP.

        Danke bereits im Voraus!

        Edit:

        Ich habe gerade daran gedacht, dass der typ von strToExec natürlich auch nvarchar sein muss.
        Muss ich trotz "korrektem" Typ, dass N angeben? Wenn ja, bleibt natürlich meine Frage von oben bestehen.
        Zuletzt editiert von blackgreetz; 14.04.2011, 10:44.

        Comment

        Working...
        X