Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [SQL] Fehler in Anweisung (https://www.delphipraxis.net/16367-%5Bsql%5D-fehler-anweisung.html)

Fellmer Lloyd 16. Feb 2004 07:40


[SQL] Fehler in Anweisung
 
Hi!

Ich versuche mittels SQL-Anweisung (TDatabase.Execute) eine neue Tabelle zu erstellen.
Die Anweisung funktioniert wenn ich sie in Access ausführe, in meinem Programm führt Sie jedoch zu einer Exception.

Datenbank: Access 97
Zugriff: BDE

SQL-Code:
'CREATE TABLE `RezOld` ('
+' `RezNr` COUNTER UNIQUE ,'
+' `Rezeptname` STRING(50) NOT NULL ,'
+' `Parent` INT NOT NULL ,'
+' `Anleitung` MEMO NULL ,'
+' `Bildpfad` STRING NULL ,'
+' `Zutaten` MEMO NULL ,'
+' `Links` MEMO NULL ,'
+' PRIMARY KEY ( `RezNr` )'
+');'
Wo ist der Fehler? :gruebel:

r_kerber 16. Feb 2004 07:44

Re: [SQL] Fehler in Anweisung
 
Hallo Fellmer Lloyd,

lass doch mal das Zeichen ` weg!

Fellmer Lloyd 16. Feb 2004 08:03

Re: [SQL] Fehler in Anweisung
 
Moin!

Auch bei folgendem Code wird der Except Block ausgelöst:
SQL-Code:
'CREATE TABLE RezOld ('
+' RezNr COUNTER UNIQUE ,'
+' Rezeptname STRING(50) NOT NULL ,'
+' Parent INT NOT NULL ,'
+' Anleitung MEMO NULL ,'
+' Bildpfad STRING NULL ,'
+' Zutaten MEMO NULL ,'
+' Links MEMO NULL ,'
+' PRIMARY KEY ( RezNr )'
+');'

r_kerber 16. Feb 2004 08:05

Re: [SQL] Fehler in Anweisung
 
Und wie lautet die Exception?

Fellmer Lloyd 16. Feb 2004 08:08

Re: [SQL] Fehler in Anweisung
 
Es wird keine Meldung angezeigt, das Programm springt "still" in den Exception Block.
Das liegt evtl. daran, dass die Anweisung in einem seperaten Thread ausgeführt wird.

Anmerkung: Die DB-Verbindung funktioniert.

r_kerber 16. Feb 2004 08:13

Re: [SQL] Fehler in Anweisung
 
Kannst Du mal etwas Quellcode zeigen?

Fellmer Lloyd 16. Feb 2004 08:20

Re: [SQL] Fehler in Anweisung
 
Jop, kein Problem:

Delphi-Quellcode:
 
procedure TThreadCopy.Execute;
var
  Database: TDatabase;
begin
  { Thread-Code hier einfügen }

  Database:= TDatabase.Create(Nil);
  try

    //DB Aktualisieren
    Database.DatabaseName:= 'REZ';
    Database.LoginPrompt:= False;
    Database.DriverName:= 'MSACCESS';
    Database.Params.Add('DATABASE NAME='+sInstallPath+'Rez.mdb');
    Database.Params.Add('OPEN MODE=READ/WRITE');
    Database.Open;
     
    //SQL Anweisungen

    //Temp Table erzeugen
    Database.Execute('CREATE TABLE RezOld ('
                      +' RezNr COUNTER UNIQUE ,'
                      +' Rezeptname STRING(50) NOT NULL ,'
                      +' Parent INT NOT NULL ,'
                      +' Anleitung MEMO NULL ,'
                      +' Bildpfad STRING NULL ,'
                      +' Zutaten MEMO NULL ,'
                      +' Links MEMO NULL ,'
                      +' PRIMARY KEY ( RezNr )'
                      +');'
Es folgen noch ein paar weitere SQL Anweisungen, die warscheinlich das gleiche Problem haben.

r_kerber 16. Feb 2004 08:30

Re: [SQL] Fehler in Anweisung
 
Hat TDatabase.Execute nicht vier Aufrufparameter, dei bei Nichtnutzung mit nil zu belegen sind?

Fellmer Lloyd 16. Feb 2004 08:37

Re: [SQL] Fehler in Anweisung
 
Ich dachte sie wären optional.

Aber auch mit den Parametern funktioniert die Anweisung nicht.
Delphi-Quellcode:
  //Temp Table erzeugen
    Database.Execute('CREATE TABLE RezOld ('
                      +' RezNr COUNTER UNIQUE ,'
                      +' Rezeptname STRING(50) NOT NULL ,'
                      +' Parent INT NOT NULL ,'
                      +' Anleitung MEMO NULL ,'
                      +' Bildpfad STRING NULL ,'
                      +' Zutaten MEMO NULL ,'
                      +' Links MEMO NULL ,'
                      +' PRIMARY KEY ( RezNr )'
                      +');'
                      , nil, False, nil
                    );
Ich google mal nach Create Table Anweisungen aus Delphi.
Vieleicht finde ich noch was.

Fellmer Lloyd 16. Feb 2004 12:29

Re: [SQL] Fehler in Anweisung
 
Ich habe die selbe Anweisung in einem TQuery ausgeführt...das selbe Ergebnis.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 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