AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Insert mit Sonderzeichen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Insert mit Sonderzeichen

Offene Frage von "Berserker"
Ein Thema von Berserker · begonnen am 24. Aug 2004 · letzter Beitrag vom 24. Aug 2004
Antwort Antwort
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#1

SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 13:42
Hallo.

Kann mir jemand Hilfestellung geben bei folgendem Problem:

Ich habe ein SqlQuery

Dies funktioniert problemlos:
INSERT INTO artikel (bezeichnung) VALUES ('blah blah blah');
Hier sieht es schon anders aus, dies funktioniert nicht:
INSERT INTO artikel (bezeichnung) VALUES ('blah blah blah 15'' ');
Es geht jetzt nicht darum statt ' ein " zu benutzen sondern das ich irgendwie die ' in die Tabelle bekomme. Bei MySQL kann man diese Zeichen ESCAPEN, in dem man einen \ davorstellt.

Ich benutze ApolloSQL. Das funktioniert wenn ich die Texte per Parameter an das query übergebe.
Jedoch brauche ich eine Möglichkeit, das per SQL-String zu machen für einen Datenimport. Kann mir jemand bei dem Problem helfen wie ich untern Delphi in einem String ein Zeichen wie ' escapen kann?

MFG, Ronny
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 13:50
Zitat von Berserker:
Ich benutze ApolloSQL.
Was ist denn das ? Egal, mir fällt nur auf, daß du keine Kommas verwendest. Insofern wird nur der string 'bla bla bla' inserted. Die Frage selber verstehe ich sowieso nicht ganz.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#3

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 13:52
mir ist zwar nicht klar, warum man bei einem Datenimport keine Parameter benutzen sollte, aber bitte: Du mußt die einzelnen Hochkommas verdoppeln - dann sollte es gehen:

' 15'' Monitor' --> '15'''' Monitor'
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#4

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 13:53
Sorry wenn ich mich etwas unverständlich ausgedrückt habe.

Es geht darum im INSERT Zeichen wie ' und " zu verwenden die mit In das Feld rein sollen.

Unter MySQL kann man diese Zeichen Escapen in dem man einen \ davorstellt.

ApolloSQL ist eine DB von Vistasoftware.

D.h. ich muss irgendwie die Zeichen ' und " escapen können. Ich habe es bereits mit QuteStr probiert. Leider kein Erfolg.
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#5

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 13:58
Also mit den Doppelten ' funktioniert eiwandfrei.

Nur mit den " Gänsefüßen will es nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#6

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 14:00
Zitat:
mir ist zwar nicht klar, warum man bei einem Datenimport keine Parameter benutzen sollte, aber bitte: Du mußt die einzelnen Hochkommas verdoppeln - dann sollte es gehen:
Ich habe eine Datenbank auf MySQL dort ziehe ich mir ein Dump und exportiere es in eine export.sql Datei mit a 25000 Zeilen. Die Tabelle hat 46 Spalten.

Wäre also die einfachste Varianten das wieder zu Importieren.

Wie würdest du es denn machen?
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#7

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 14:00
verwendest du Delphi Query's ?
wenn ja, dann verwende einfach Parameter
Delphi-Quellcode:
sql.SQL.Text := 'INSERT INTO ARTIKE (BEZEICHNUNG) VALUES(:BEZ)';
sql.ParamByName('BEZ').AsString := 'blah ''ddfdsf''';
sql.ExecSQL;
Gruss
Hans

edit ... ups gerade gelesen, dast ja keine Parameter verwenden kannst .....
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#8

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 14:04
@Gruber_Hans_12345:

Ich lade ein File mit 25000 Zeilen wo SQL-Inserts drin stehen.
Da müsste ich das erst komplett wieder zerlegen und dann alles per Parameter übergeben.
Manche Zellen sind auch leer.

Mit den Parametern habe ich es auch schon probiert. Es muss doch eine Möglichkeit geben das auch so zu bewerkstelligen.

Ronny
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: SQL Insert mit Sonderzeichen

  Alt 24. Aug 2004, 16:35
Zitat von Berserker:
Ich lade ein File mit 25000 Zeilen wo SQL-Inserts drin stehen.
uff

Warum denn das?
Ich glaube die mit Abstand schlechteste Lösung für Import/Export sind solche SQL Files.
Da wäre ja selbst ein CSV 100-mal besser.
Wenn die Dateien von dir kommen, dann lege am Besten als FixedLength ab.
An den Anfang der Datei kannst du dann für jede Spalte die Länge ablegen.
Auf die Art sparst du dir auch noch ein stupides Delimiter-Gesuche. -> wesentlich schnelleres Einlesen in einen Array oder TList/TCollection-Descendant.

SQL Listen sind nicht nur verdammt groß, es ist fast unmöglich sie mit einer zumutbaren Geschwindigkeit einzulesen.
Schließlich ist jede Zeile eine eigenes Statement, während du mit einem parametrisierten INSERT immer wieder das GLEICHE Statement absetzt, nur die Werte der Parameter ändern sich. Die DB muss dadurch keinen neuen Query Plan erstellen oder die Berechtigungen prüfen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz