Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mysql Insert Fehler (https://www.delphipraxis.net/40342-mysql-insert-fehler.html)

Masterof 22. Feb 2005 15:06

Re: Mysql Insert Fehler
 
Hallo!!

Du müsstest das mit den Parametern genauso machen können, denn du kannst ja auch in in einem Memo die Zeilen zählen.
So liest du es Zeile für Zeile aus und baust das mit dem Paramtern zusammen.

MfG Master

alcaeus 22. Feb 2005 15:14

Re: Mysql Insert Fehler
 
@BorlanDelphiUser: Dein Statement ist schon mal syntaktisch komplett falsch (jedenfalls wüsse ich nicht von einem "insert into set" statement.

Für alle anderen mal eine Funktion und ein Zitat: Delphi-Referenz durchsuchenQuotedStr

Die Delphi-OH zum Thema QuotedStr:
Use QuotedStr to convert the string S to a quoted string. A single quote character (') is inserted at the beginning and end of S, and each single quote character in the string is repeated.

Das dürfte das Problem aus der Welt schaffen.

Greetz
alcaeus

lume96 22. Feb 2005 15:18

Re: Mysql Insert Fehler
 
Moin,
Zitat:

Zitat von BorlanDelphiUser
... dann kommt der tolle Fehler .. You have an Error in your SQL Syntax .. bla bla bla

Den hast Du auf jeden Fall, denn die korrekte Syntax für'n INSERT Statement lautet
SQL-Code:
INSERT INTO table VALUES();
oder eventuell
SQL-Code:
INSERT INTO table(field1,field2) VALUES();
Ein SET hat hier nichts zu suchen (das kommt im UPDATE vor).
SQL-Code:
Query.Sql.Text := 'INSERT INTO Code_schnipsel VALUES (:phpcode)';
Query.Params.Clear;
Query.Params.CreateParam(ftString,'phpcode', ptInput);

Query.ParamByName('phpcode').AsString := Form1.SynEdit1.Text;
Query.ExecSQL;

Tschüss
Lutz

BorlanDelphiUser 22. Feb 2005 15:28

Re: Mysql Insert Fehler
 
Hmm also wenn ich PHP programmiere ist das so ziemlich egal ich find das so nähmlich besser ... bei langen Abfragen muss man nicht immer schauen an welche Stelle welcher Inhalt hinmuss ... deswegen ziehe ich das mit SET eigetlich vor.

Aber ich probiere es gleich mal mit dem anderen Syntax ... denn QuotedStr hat auch nicht funktioniert.

BorlanDelphiUser 22. Feb 2005 15:38

Re: Mysql Insert Fehler
 
so ich hab das ganze auf den Syntax ...
SQL-Code:
INSERT INTO table(field1,field2) VALUES();
... geändert. hat nicht gebracht es liegt eindeutig an den vorkommenden ' Zeichen.
Es muss doch dafür eine Lösung geben ...

alcaeus 22. Feb 2005 15:51

Re: Mysql Insert Fehler
 
Moin BorlanDelphiUser,

versuchs mal mit diesem Code:
Delphi-Quellcode:
StringReplace(Form1.SynEdit1.Text, '''', '\''', [rfReplaceAll]);
oder vielleicht etwas "lesefreundlicher":
Delphi-Quellcode:
StringReplace(Form1.SynEdit1.Text, #39, '\'+#39, [rfReplaceAll]);
Dritte Möglichkeit:
Delphi-Quellcode:
Query1.SQL.Text := 'INSERT INTO tabelle values ("'+Form1.SynEdit1.Text+'")';
Greetz
alcaeus

[edit]"hk" durch "#39" ersetzt...das hat man davon wenn die konstanten immer definiert sind :wall:[/edit]

BorlanDelphiUser 22. Feb 2005 16:07

Re: Mysql Insert Fehler
 
@alcaeus

danke werd gleich mal durchprobieren ...

BorlanDelphiUser 22. Feb 2005 16:14

Re: Mysql Insert Fehler
 
@alcaeus ... SUPER!!! Endlich funktioniert es ... DANKE DANKE !!!

BTW ... gleich die erste Variante hat funktioniert.

Delphi-Quellcode:
StringReplace(Form1.SynEdit1.Text, '''', '\''', [rfReplaceAll]);

lume96 22. Feb 2005 16:16

Re: Mysql Insert Fehler
 
Zitat:

Zitat von BorlanDelphiUser
so ich hab das ganze auf den Syntax ...
SQL-Code:
INSERT INTO table(field1,field2) VALUES();
... geändert. hat nicht gebracht es liegt eindeutig an den vorkommenden ' Zeichen.
Es muss doch dafür eine Lösung geben ...

Wie jetzt, hast Du es mal so probiert :
SQL-Code:
ZQuery1.Params.Clear;
  ZQuery1.SQL.Text := 'INSERT INTO Code_Schnipsel(Code) VALUES(:phpc)';
  ZQuery1.Params.CreateParam(ftString,'phpc',ptInput);
  ZQuery1.ParamByName('phpc').AsString := Memo1.Text;

  ZQuery1.ExecSQL;
Ich hab das mal eben schnell getestet und habe kein Problem mit :
Code:
<?
  echo 'Irgendwas';
?>
im Memo.

Zugegeben, ich hab's mit einer Firebird DB getestet; habe hier keine MySQL zum Test.

Eigentlich sollte das aber nichts zur Sache tun.

Tschüss,
Lutz

alcaeus 22. Feb 2005 16:25

Re: Mysql Insert Fehler
 
Zitat:

Zitat von BorlanDelphiUser
BTW ... gleich die erste Variante hat funktioniert.

Die macht eigentlich dasselbe wie die zweite, allerdings ist die zweite lesbarer... (wenn man das Posting editiert und "#39" anstatt "hk" schreibt :wall:)

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz