Jan: Problem mit Datenfelder mit Leerzeichen

Hallo Leute!

Ich hab ein kleines Tool, mit dem ich mittels SQL-Anweisungen XMLs erstellen kann. Es übernimmt die Feldnamen 1-zu-1 als Tagnamen.

Nun habe ich das Problem, dass einige Felder einer Tabelle Leerzeichen enthalten. Dies in der DB-Struktur wäre zu heikel, da ich weder der Programmierer dieser Datenbank, noch derjenige bin, der das ganze CRM - welches "drüberliegt" - kenne ;o(

Bei SELECT * läuft es auch superrund, nur hat der XML-Parser dann später das Problem, da einige Tags Leerzeichen enthaßßlten.

Nun wollte ich Alias-Namen vergeben, also SELECT Mitarbeiter total as Mitarbeitertotal. Ok, so hat es nicht funktioniert.

Ich hab dann den Leerzeichen-Namen mit einfachen, doppelten Anführungszeichen und eckigen Klammern versehen, doch jedesmal gibt es mir ein "Bad Query" zurück.

Wie kann ich dem noch entgegenwirken? Bezüglich der DB: Es handelt sich um einen MS-SQL-Server, die Verbindung des Tools wird mittels ODBC aufgebaut.

Weiß hier jemand vielleicht einen Lösungsansatz?

lg, Jan

  1. Hi,

    Nun wollte ich Alias-Namen vergeben, also SELECT Mitarbeiter total as Mitarbeitertotal. Ok, so hat es nicht funktioniert.

    richtig. Sieh in der Dokumentation Deines DBMS nach, wie der Spaltenname angegeben werden muss, so dass er als solcher erkannt werden kann.

    Ich hab dann den Leerzeichen-Namen mit einfachen, doppelten Anführungszeichen und eckigen Klammern versehen, doch jedesmal gibt es mir ein "Bad Query" zurück.

    Nicht raten. Lesen. Ich bin sicher, auch MS-SQL verfügt über eine Dokumentation.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo Jan,

    Bei SELECT * läuft es auch superrund, nur hat der XML-Parser dann später das Problem, da einige Tags Leerzeichen enthaßßlten.

    Verwende die angemessenen Escape-Zeichen. Zum Maskieren solcher Namen verwendet man beim MS SQL-Server eckige Klammern, was auch im Handbuch steht.

    Nun wollte ich Alias-Namen vergeben, also SELECT Mitarbeiter total as Mitarbeitertotal. Ok, so hat es nicht funktioniert.

    SELECT  
        [Mitarbeiter total],  
        [noch eine Spalte mit Leerzeichen],  
        [und noch eine],  
        ...  
    FROM [tabelle mit Leerzeichen im Namen]  
    ...
    

    Weiß hier jemand vielleicht einen Lösungsansatz?

    falls Dir das nicht weiterhilft, dann hilft es ganz bestimmt weiter, wenn Du uns Dein Problem etwas besser erklärst.

    Freundliche Grüße

    Vinzenz

  3. hi,

    tritt dem jenigen, der die Tabelle aufgesetzt hat, in den Arsch ;-)
    Wusste garnicht das MS-SQL so einen Blödsinn auch zulässt...ist mir bisher nur in Access übern weg gelaufen.

    zwinschendurch kannst du dir ggf. mit eckigen Klammern weiter helfen:

      
    select [Mitarbeiter total] from table
    

    Gruss,
    Seppel

  4. Hi,

    Wie sieht dein Lösungsansatz genau aus?

    Und Zwischenfrage: Wozu brauchst du ein extra Tool um aus SQL-Abfrage-Rückgaben XML zu machen unter MS SQL? Er kann es selbst, wenn du ihm ein FOR XML mitgibst. Genaueres zur Syntax und zu weiteren Optionen findest du ... du weisst schon. :)

    Ciao, Frank