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 Statement will nicht (https://www.delphipraxis.net/61592-sql-statement-will-nicht.html)

Avax2k 23. Jan 2006 16:25

Datenbank: ACCESS • Version: 2003 • Zugriff über: ADO

SQL Statement will nicht
 
allmählich bekomme ich ich das Gefühl, dass ich dringend eine Pause vom Programmieren braucht..ständig tauchen Fehler auf, die so lapidar sind und dennoch ich nicht darauf komme weshalb es nicht funktioniert :(

Delphi-Quellcode:
const SQL_COPY1
= 'INSERT INTO PROFIL(Datum)'
    +'SELECT *, %s FROM PROFIL'
    +'WHERE BenutzerID = 10';
...
ADODataSet.Close;
ADODataSet.CommandText := Format(SQL_COPY1, [DateToStr(Date)]);
ADODataSet.Open;
...
soweit man erkennen kann versucht ich in die Spalte 'Datum' and der Stelle an der 'Benutzer ID' den Wert 10 hat, das heutige Datum reinzuschreiben. Und plötzlich meldet mir Delphi, dass in der FROM Clausel ein Fehler ist..

Variante 2 ist so:
Delphi-Quellcode:
const SQL_COPY1
= 'INSERT INTO PROFIL(Datum)'
    +'SELECT *, %s FROM PROFIL'
    +'WHERE BenutzerID = :ID';
...
ADODataSet.Close;
ADODataSet.FieldValues['BenutzerID'] := Label1.Caption;
ADODataSet.CommandText := Format(SQL_COPY1, [DateToStr(Date)]);
ADODataSet.Open;
...
hier meldet Delphi, dass AdoDataSet kein Feld mit der Bezeichnung BenutzerID hat... das stimmt aber nicht denn es ist definitiv da und funktioniert auch in einer anderen Funktion tadellos... weiss nicht woran es liegt..

hoffe jemand kann mir da einen Tipp geben... und ich weiss dass es Kinderkram hier sit aber dennoch nervt es mich :(

Ferber 23. Jan 2006 16:31

Re: SQL Statement will nicht
 
Versuch mal den String ohne + (also in eine Zeile) zu schreiben.
Sieht so aus als würden Leerzeichen fehlen.

mkinzler 23. Jan 2006 16:32

Re: SQL Statement will nicht
 
Du nennst den Paramter ID und versuchst einen parameter BenutzerID zu fülle,
Delphi-Quellcode:
const SQL_COPY1
= 'INSERT INTO PROFIL(Datum)'
    +'SELECT *, %s FROM PROFIL'
    +'WHERE BenutzerID = :ID';
...
ADODataSet.Close;
ADODataSet.FieldValues['BenutzerID'] := Label1.Caption;
ADODataSet.CommandText := Format(SQL_COPY1, [DateToStr(Date)]);
ADODataSet.Open;

Kedariodakon 23. Jan 2006 16:53

Re: SQL Statement will nicht
 
Zitat:

Zitat von Avax2k
...
Variante 2 ist so:
Delphi-Quellcode:
const SQL_COPY1
= 'INSERT INTO PROFIL(Datum)'
    +'SELECT *, %s FROM PROFIL'
    +'WHERE BenutzerID = :ID';
...
ADODataSet.Close;
ADODataSet.FieldValues['BenutzerID'] := Label1.Caption;
ADODataSet.CommandText := Format(SQL_COPY1, [DateToStr(Date)]);
ADODataSet.Open;
...
hier meldet Delphi, dass AdoDataSet kein Feld mit der Bezeichnung BenutzerID hat... das stimmt aber nicht denn es ist definitiv da und funktioniert auch in einer anderen Funktion tadellos... weiss nicht woran es liegt..

benutze
Delphi-Quellcode:
// ...
ADODataSet.FieldByName( 'BenutzerID' ) := Label1.Caption;
// ...
Oder Füge das Feld 'BenutzerID' in die Fieldliste vom ADODataSet.

Bye Christian

marabu 23. Jan 2006 16:53

Re: SQL Statement will nicht
 
Oder vielleicht so?

SQL-Code:
UPDATE profil SET datum = getdate() WHERE benutzerid = 10
Grüße vom marabu

Avax2k 23. Jan 2006 17:19

Re: SQL Statement will nicht
 
habe alle Varianten ausprobiert..es geht immer noch GAR NICHTS..

die Funktion GETDATE() kennt er nicht und wenn ich da eine Zahl reinschreibe geht es auch nicht :(

marabu 23. Jan 2006 17:28

Re: SQL Statement will nicht
 
Habe kein Access - probiere mal Date() statt GetDate().

Hast du kein Handbuch zu Jet SQL?

marabu

omata 23. Jan 2006 17:58

Re: SQL Statement will nicht
 
Eventuell must du auch Datum() nehmen, bei einer deutschen Accessversion (Access ist leider so krank)

MfG
Thorsten

Avax2k 23. Jan 2006 18:01

Re: SQL Statement will nicht
 
wenn ich DATE() eingebe kommt..

der Folgende Fehler:

"Data type mismatch in criteria expression"

thkerkmann 23. Jan 2006 18:28

Re: SQL Statement will nicht
 
Hi,
welchen Datentyp hat denn dein Feld DATUM ????

Zitat:

Zitat von Avax2k
wenn ich DATE() eingebe kommt..

der Folgende Fehler:

"Data type mismatch in criteria expression"

ist es überhaupt ein DateTime Feld ?

Gruss Thomas


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