Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ZEOS: MySQL Fehler ausgeben lassen? (https://www.delphipraxis.net/70055-zeos-mysql-fehler-ausgeben-lassen.html)

JPSelter 24. Mai 2006 12:23

Datenbank: Firebird • Version: 1.6 • Zugriff über: ZEOS 6.1.5

ZEOS: MySQL Fehler ausgeben lassen?
 
Gibt es eine Möglichkeit, an den direkten Verursacher einer Exception ranzukommen? Ich habe nun eine Datenbank erstellt und teste gerade einen CREATE TABLE Befehl. Da ist aber ein Fehler drin, nur welcher, das wüsste ich gerne. Bei PHP benutze ich dann immer mysql_error(), da steht dann sowas drin.

Angel4585 24. Mai 2006 12:26

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
sowas? :-D
Delphi-Quellcode:
try
  Query.ExecSQL;
except
  on e:Exception do
    ShowMessage(e.Message);
  end;

JPSelter 24. Mai 2006 12:38

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
Ja sowas ;) Danke!

Wo wir schon dabei sind... was stimmt hier nicht?

Delphi-Quellcode:
ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('CREATE TABLE protokolle ('+
    'id INT NOT NULL PRIMARY_KEY, '+
    'basetype VARCHAR(64) NOT NULL, '+
    'source VARCHAR(128) NOT NULL, '+
    'member MEDIUMTEXT NOT NULL, '+
    'distribution MEDIUMTEXT NOT NULL, '+
    'nextdate INT NOT NULL'+
    ');');
  ZQuery1.ExecSql;
Er meckert danach mit Fehlernr. -104, Token unknown und invalid Token...

Angel4585 24. Mai 2006 12:50

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
Hast du die Query mit ner TZConnection verbunden?
Er muss ja wissen win welche DB er das schreiben soll :zwinker:

BTW: ich würd das so machen:
[quote="JPSelter"]
Delphi-Quellcode:
ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('CREATE TABLE IF NOT EXISTS protokolle ('+
    'id INT NOT NULL AUTO_INCREMENT, '+
    'basetype VARCHAR(64) NOT NULL, '+
    'source VARCHAR(128) NOT NULL, '+
    'member MEDIUMTEXT NOT NULL, '+
    'distribution MEDIUMTEXT NOT NULL, '+
    'nextdate INT NOT NULL, '+
    'PRIMARY KEY(id));');
  ZQuery1.ExecSql;
quote]

was soll eigentlich in die MEDIUMTEXT-Felder rein? ich nehm für längere Texte immer BLOB

JPSelter 24. Mai 2006 13:00

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
In das Feld soll eine Liste von Personennamen rein, TEXT ist mir da zu lang, und VARCHAR zu kurz. Oder gibts da was geeigneteres für?

Ich habe mal klein angefangen, und endlich einen Befehl erfolgreich abgeschickt:

Delphi-Quellcode:
ZQuery1.SQL.Text:='CREATE TABLE test ('+
    'id INT NOT NULL, '+
    'id2 INT'+
    ')';
Füge ich nun PRIMARY_KEY oder IF NOT EXISTS hinzu, meckert er, dass er das alles nicht kennen würde. Wieso?

Delphi-Quellcode:
ZQuery1.SQL.Text:='CREATE TABLE IF NOT EXISTS test ('+
    'id INT NOT NULL PRIMARY_KEY, '+
    'id2 INT'+
    ')';
Machts eigentlich einen Unterschied, ob ich .SQL.Add oder .SQL.Text benutze?

MagicAndre1981 24. Mai 2006 13:05

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
Zitat:

Zitat von JPSelter
Machts eigentlich einen Unterschied, ob ich .SQL.Add oder .SQL.Text benutze?

Bei Add wird an die TStrings von SQL einfach der neue Text drangehangen und da kann es dazu kommen, dass dann mehrere SQL-Befehler drin stehen, diedu aber gar nicht haben willst. Also gleich auf Text zugreifen, oder vorher Clear aufrufen.

Angel4585 24. Mai 2006 13:06

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
Hmm.. in der Überschrift steht das du mit MySQL arbeitest un in deinem ersten Post steht was von Firebird.. mit was arbeitest du denn nu? :gruebel:

JPSelter 24. Mai 2006 13:09

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
Also ich verstehe das so:

Delphi->ZEOS->Firebird Embedded Server->MySQL

;)

MagicAndre1981 24. Mai 2006 13:11

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
Zitat:

Zitat von JPSelter
Also ich verstehe das so:

Delphi->ZEOS->Firebird Embedded Server->MySQL

Ich versteh grad nix mehr :? :gruebel:

Angel4585 24. Mai 2006 13:12

Re: ZEOS: MySQL Fehler ausgeben lassen?
 
Zitat:

Zitat von MagicAndre1981
Zitat:

Zitat von JPSelter
Also ich verstehe das so:

Delphi->ZEOS->Firebird Embedded Server->MySQL

Ich versteh grad nix mehr :? :gruebel:

:shock: ich schliess mich an ich verstehs au net

mit Delphi -> ZEOS -> MySQL-Server sollte es gehn aber Firebird hat da nix zu suchen


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr.
Seite 1 von 2  1 2      

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