AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Insert Into klappt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Insert Into klappt nicht

Ein Thema von wfs12 · begonnen am 19. Apr 2007 · letzter Beitrag vom 19. Apr 2007
Antwort Antwort
wfs12

Registriert seit: 15. Nov 2006
60 Beiträge
 
Delphi 7 Personal
 
#1

Insert Into klappt nicht

  Alt 19. Apr 2007, 00:00
Datenbank: Mysql • Version: 5.0 • Zugriff über: Delphi
Guten Morgen/Abend!
Hab ein kleines Problem hab mir versucht über ein paar tutorials mysql näher zu bringen bin auch schon ganz zufrieden, mit dem editor kann ich auch schon einigermaßen umgehen. Alle anderen Teile wie Tabelle erstellen oder Datenbank neu anlegen gehen ohne Probleme, wenn ich jetzt aber den INSERT INTO befehl ausführen will passiert gar nichts:
Delphi-Quellcode:
var
  query: PChar;
begin
  mysql_select_db(_myCon, 'APITest');
  query:= 'INSERT INTO posts(author,entry) VALUES (1,Hier ist der Eintrag)';
  mysql_real_query(_myCon, query, Length(query));
end;
finde den Fehler einfach nicht! Danke im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#2

Re: Insert Into klappt nicht

  Alt 19. Apr 2007, 00:20
versuch mal "Hier ist der Eintrag" in einfache Anführungsstriche (') zu setzen (musst diese zum escapen aber jeweils doppelt schreiben)...

also:
query:= 'INSERT INTO posts (author,entry) VALUES (1,''Hier ist der Eintrag'')'; HTH Frank
  Mit Zitat antworten Zitat
Hansa

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

Re: Insert Into klappt nicht

  Alt 19. Apr 2007, 00:54
So, wie der Fragesteller das vorhatte, nun so geht es echt nicht. Frage mich allerdings immer wieder, warum man sich selber Syntax-Fallen baut, anstatt
Delphi-Quellcode:
Dataset.Insert;
Dataset.ParamByName (...).AsString := 'Hier ist der Eintrag';
usw. einzusetzen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#4

Re: Insert Into klappt nicht

  Alt 19. Apr 2007, 07:23
Zitat von Hansa:
So, wie der Fragesteller das vorhatte, nun so geht es echt nicht. Frage mich allerdings immer wieder, warum man sich selber Syntax-Fallen baut, anstatt usw. einzusetzen.
ahm ist dir schon aufgefallen das er kein Dataset benutzt, sondern über die libmysql direkt die DB anspricht

@wfs12: Die Werte für die zeilen solltest du imho immer unter 'WERT' setzen.
Das Problem in Delphi ist das ' String ende/anfang bedeutet, deswegen hab ich des bis jetzt immer so gelöst:

query:= 'INSERT INTO posts(author,entry) VALUES (1,'#39'Hier ist der Eintrag'#39')'; (#39 steht für ')
Bei dieser Abfrage brauchst du es vllt. nicht aber bei späteren komplitzierteren abfragen wahrscheinlich schon.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Insert Into klappt nicht

  Alt 19. Apr 2007, 07:49
Hi,

funktionieren sollte auch

Delphi-Quellcode:

query:= 'INSERT INTO posts(author,entry) VALUES (1, "Hier ist der Eintrag" )';
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Insert Into klappt nicht

  Alt 19. Apr 2007, 08:04
Zitat von gsh:
ahm ist dir schon aufgefallen das er kein Dataset benutzt, sondern über die libmysql direkt die DB anspricht
Auch die direkte libmysql-Anbindung unterstützt Parameter (Diverse Komponenten setzen ja darauf). Und in Zeiten von wöchentlichen Windows Updates sollte man seine Anwendung auch halbwegs sicher aufbauen. Bei dieser direkten Angabe (vor allem wenn keine Quotung der Werte erfolgt) hast du eine 1a Sicherheitslücke eingebaut die jeder Anwender der es darauf anlegt innerhalb von 1 Minute versucht auszunutzen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Hansa

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

Re: Insert Into klappt nicht

  Alt 19. Apr 2007, 08:24
Zitat von gsh:
..ahm ist dir schon aufgefallen das er kein Dataset benutzt, sondern über die libmysql direkt die DB anspricht
Nix, "ähm". Besser gesagt : doch. Ähm , dir ist aber schon klar, dass man eine DB nicht auf String-Manipulationen reduzieren sollte und, dass es Methoden gibt ?
Gruß
Hansa
  Mit Zitat antworten Zitat
wfs12

Registriert seit: 15. Nov 2006
60 Beiträge
 
Delphi 7 Personal
 
#8

Re: Insert Into klappt nicht

  Alt 19. Apr 2007, 15:13
so Vielen dAnk für die schnellen hilfreichen antworten! Habs jetzt so gelöst und klappt auch.
query:= 'INSERT INTO posts(author,entry) VALUES (''1'',''Hier ist der Eintrag'')'; Vielen Dank!
  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 07:44 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