Stefan E: MSSQL leeres varchar Feld

hallo
ich habe in einer MSSQL Tabelle ein varchar Feld mit der standart Länge 50. Wenn ich nun aber im Feld keinen Wert drin habe bekomme ich immer einen Space (also " ") aus der Datenbank bei einer Abfrage.
Liegt das an der NULL-Werte Einstellung? Oder an was sonst könnte es liegen?

Vielen Dank für die Hilfe

  1. Hallo,

    zunächst mal wäre es wichtig die genaue Felddefinition zu kennen:

    1. hat es einen Default-Wert / sind NULL Werte erlaubt
    2. MS-Access kennt auch noch sowas wie "zero-length", also Strings die "" sind.

    Dann würde mich noch interessieren, wie du das abfragst. Bei uns wurden lange Zeit Abfragen der Form SELECT VALUE(x, ' ') AS x verwendet um in der Skriptsprache keine Probleme mit NULL-Werten zu haben und gleichzeitig ein entsprechendes HTML-Element schon mit "Inhalt" befüllt zu haben.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      1. es hat keinen Default Wert und NULL Werte sind erlaubt
      2. ich arbeite mit MSSQL und nicht Access

      meine Abfragen gehen nach folgendem Schema.
      SELECT feld FROM tabelle WHERE ... mittels PHP

      Die ausgabe hat dan jeweils eine länge von 1 und nicht 0. Und wenn ich den Inhalt z.B. an dem value eines html input feldes zuweise, hat es einen Abstand (Space, Leerschlag) drin.

      1. Hi,

        Die ausgabe hat dan jeweils eine länge von 1 und nicht 0. Und wenn ich den Inhalt z.B. an dem value eines html input feldes zuweise, hat es einen Abstand (Space, Leerschlag) drin.

        trim() kann da abhilfe verschaffen. vll. noch ein empty() hinterher.

        MfG

        1. genau bei empty() hatte ich Probleme, weil ich jeweils abfragen möchte, ob das Feld leer ist oder nicht. Aber weil es ja nie leer wird, sondern mit einem Leerzeichen gefüllt wird, gibt mir empty() nie true.

          Kann es nicht an einer DB einstellung liegen? Den das Projekt wurde zuerst auf MySQL programiert und nun für MSSQL umprogramiert und nur hier tritt das Problem auf.
          An einigen wichtigen Stellen habe ich das empty() mit "if (strlen($var)<1)" ersetzt was auch funktioniert weil der Inhalt eigentlich nie nur ein Zeichen sein sollte.
          Doch ist es nervig nun alles Anzupassen (evt. auch mit trim()).