Announcement

Collapse
No announcement yet.

Sonderzeichen bei Interbase - INSERT INTO

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

  • Sonderzeichen bei Interbase - INSERT INTO

    Hallo,

    ich habe folgendes Problem:

    Wenn ich Daten in eine Tabelle eintrage möchte, und in einem String die Krähenfüsse verwende, dann geht das nicht. Wie kann ich diese aber trotzdem in einem Stringfeld einfügen???

    <pre>
    INSERT INTO KUNDEN
    (NAME, STRASSE, PLZ, ORT)
    VALUES
    ("Hotel "Am Kurpark"", "MUSTERSTRASSE 1", "00000", "Musterort")
    </pre>

    Das Problem sind die Anführungszeichen: "Hotel <b>"</b>Am Kurpark<b>"</b>"

    Danke

    ciao Elerian

  • #2
    Hallo Elerian,<BR>
    es sollte so aussehen:<BR><BR>
    INSERT INTO KUNDEN <BR>
    (NAME, STRASSE, PLZ, ORT) <BR>
    VALUES <BR>
    ("Hotel ""Am Kurpark""", "MUSTERSTRASSE 1", "00000", "Musterort")<BR><BR>
    Gruss, Fran

    Comment


    • #3
      Hallo,<br><br>
      ich würde relativ rasch von den doppelten Hochkommas zur Angabe von Zeichenketten abkommen, weil dies in einer Dialect 3 Datenbank nicht mehr funktioniert, da dies als Delimited Identifier (Name eines Datenbankobjekts) interpretiert wird. Für Strings sollte man immer einfache Hochkommas verwenden.<br><br>
      Für das obige Beispiel:
      <PRE>
      INSERT INTO KUNDEN (NAME, STRASSE, PLZ, ORT) VALUES ('Hotel "Am Kurpark"', 'MUSTERSTRASSE 1', '00000', 'Musterort')
      </PRE>
      Gruss,<br>
      Thoma
      Thomas Steinmaurer

      Firebird Foundation Committee Member
      Upscene Productions - Database Tools for Developers
      Mein Blog

      Comment


      • #4
        Hat Funktioniert!

        Danke

        Comment


        • #5
          Elerian,<br>
          noch besser ist es, parametrisierte Queries zu benutzen<br>

          SQL.Add('INSERT INTO KUNDEN');<br>
          SQL.Add('(NAME, STRASSE, PLZ, ORT)');<br>
          SQL.Add('VALUES')<br>
          SQL.Add('(:NAME, :STRASSE, :PLZ, :ORT)');<br>
          ParamByName('NAME').AsString:= 'Hotel';<br>
          ParamByName('STRASSE').AsString:= '"Am Kurpark"'; usw.<P>
          Heik

          Comment


          • #6
            Hallo Heiko,<br><br>
            wenn es sich um oft <b>wiederkehrende</b> (z.B. in einer FOR-Schleife) DML Anweisungen (mit unterschiedlichen Parametern) in der <b>Client-Anwendung</b> handelt, dann sind parametrisierte Anweisungen die beste Wahl, allerdings kommt es oft vor, dass DML Anweisungen auch in SQL-Scripts verwendet werden sollen, um z.B. eine Datenbank mit bestimmten Daten zu füllen/initialisieren, da wird man "pure" DML Anweisungen verwenden müssen ...<br><br>
            Parametrisierte Anweisungen sind auch dann notwendig, wenn man BLOB-Daten in der Client-Anwendung ändern/speichern möchte. D.h. wie immer, es kommt auf den Einsatzzweck drauf an ;-).<br><br>
            Gruss,<br>
            Thoma
            Thomas Steinmaurer

            Firebird Foundation Committee Member
            Upscene Productions - Database Tools for Developers
            Mein Blog

            Comment

            Working...
            X