![]() |
Hilfe für Anfänger SQL
Habe eine tabelle(paradox)mit feld summe(currency) und Datum (Date).
Bei input mit Date bekomme ich ne Fehlermeldung,was mache ich falsch?? So klappt es!!!
Code:
So nicht!!
procedure TForm1.Button1Click(Sender: TObject);
begin query1.sql.clear; Query1.SQL.Text :='insert into langzeittabelle (Summe)values(10)'; Query1.ExecSQL; end;
Code:
P.S:Was müßte ich für edit und delete schreiben?
procedure TForm1.Button1Click(Sender: TObject);
begin query1.sql.clear; Query1.SQL.Text :='insert into langzeittabelle (Datum,Summe)values(22.09.2003,10)'; Query1.ExecSQL; end; Da das mein Anfang mit SQL ist und in meinen sämtlichen Büchern nichts zu finden ist hoffe ich auf eure Hilfe. mfg schniede |
Re: Hilfe für Anfänger SQL
Zitat:
a) Frage 1 Versuche mal das Datum in Hochkommatas zu setzen ('). b) EDITE
SQL-Code:
UPDATE tabelle SET feldname = wert WHERE bedingung
Code:
Wenn du verschiedene Felder gleichzeitig ändern möchtest werden diese nach dem SET durch kommas getrennt:
procedure TForm1.Button1Click(Sender: TObject);
begin query1.sql.clear; Query1.SQL.Text :='UPDATE langzeittabelle SET summe = 5 WHERE datum = '22.09.2003'; Query1.ExecSQL; end;
SQL-Code:
c) DELETE
UPDATE tabelle SET feldname1=wert1 , feldname2=wert2 , feldname3=wert3 WHERE bedingung
c.1) Alle Zeilen einer Tabelle löschen
SQL-Code:
c.2) Teilmenge einer Tabelle löschen
DELETE tabelle
SQL-Code:
DELETE FROM tabelle WHERE bedingun
Code:
Hoffe das hilft dir.
procedure TForm1.Button1Click(Sender: TObject);
begin query1.sql.clear; Query1.SQL.Text :='DELETE FROM langzeittabelle WERE datum = '22.09.2003'; Query1.ExecSQL; end; BTW: Suche mal auf deinem Rechner nach der LocalSQL.HLP. Das ist eine kleine Hilfe mit den wichtigsten SQL-Befehlen. Die ist IMHO bei Delphi dabei. Wenn nicht schaue einfach mal im Internet. Die hat mir am sehr geholfen. Ansonsten natürlich -> Fragen ;-) |
Re: Hilfe für Anfänger SQL
Hy Sharky!!
Hilft mir natürlich erst mal weiter. Datum in Hochkomma funzt nicht.
Code:
[Fehler] Kundenverwaltung.pas(1230): Operator oder Semikolon fehlt
begin
query1.sql.clear; Query1.SQL.Text :='insert into langzeittabelle (Datum,Summe)values('22.08.2003',10)'; Query1.ExecSQL; end; ??? bin ich zu blöd :-((. mfg schniede |
Re: Hilfe für Anfänger SQL
ich noch ma!
Code:
bekomme auch die Fehlermeldung:[Fehler] Kundenverwaltung.pas(1235): Operator oder Semikolon fehlt
query1.sql.clear;
Query1.SQL.Text :='DELETE FROM langzeittabelle WERE datum = '18.09.2003'; Query1.ExecSQL; vieleicht kannst du noch mal ein Blick drauf werfen Sharky ? schniede |
Re: Hilfe für Anfänger SQL
Zitat:
so kann es nicht gehen. Du musst ja einen String übergeben in dem Hochkommatas stehen. Hatte ich in meinem Beispiel total vergessen ;-( Versuche es mal so:
Code:
Das QuotedStr gibt als Ergebniss '18.09.2003' zurück! Inkl. der Hochkommas. Bei deinem Code hast Du ja mit dem ' vor der 18. den String beendet.
query1.sql.clear;
Query1.SQL.Text :='DELETE FROM langzeittabelle WHERE datum = ' + QuotedStr ('18.09.2003'); Query1.ExecSQL; Noch mal zum Verständiss: Der SQL-String muss so aussehen
SQL-Code:
Dummerweise werden in Delphi Strings halt auch in ' eingeschlossen.
DELETE FROM langzeittabelle WERE datum = '18.09.2003'
Wenn Du nun den Teil der in Hochkommas sein musst mit QuotedStr übergibst läuft es. Das gleiche Problem hättest du z.B. bei der Suche nach Text. Uff... Ich hoffe Du verstehst was ich meine!? [EDIT]ACHTUNG! Bei Dir im Code steht WERE und nicht WHERE |
Re: Hilfe für Anfänger SQL
Danke Sharky!!
Funzt!!!
Code:
Nur wie kann ich hier vonpicker.dateeinbauen???
begin
query1.sql.clear; Query1.SQL.Text :='DELETE FROM langzeittabelle WHERE datum = ' + QuotedStr (datetostr(vonpicker.date)); Query1.ExecSQL end;
Code:
mfg schniede
begin
query1.sql.clear; Query1.SQL.Text :='insert into langzeittabelle (Summe,Datum)values( 10,"09/12/2003")'; Query1.ExecSQL; end |
Re: Hilfe für Anfänger SQL
Zitat:
Code:
begin
query1.sql.clear; Query1.SQL.Text :='insert into langzeittabelle (Summe,Datum)values( 10,' + QuotedStr (DateToStr (vonpicker.date)) + ')'; Query1.ExecSQL; end |
Re: Hilfe für Anfänger SQL
Statt QuotedStr kannst Du auch zwei Hokommata in Folge schreiben:
var a: string; begin a := 'Hier steht ein Hochkomma: ''!'; end; |
Re: Hilfe für Anfänger SQL
Zitat:
|
Re: Hilfe für Anfänger SQL
Hier noch mein Senf:
Schreibe alles groß oder klein, also vor allem die Bezeichner. Ich schreibe alles GROß und verzichte auf deutsche Sonderzeichen. Quoted Strings habe ich noch nicht gebraucht. Das ganze beruht zwar nur auf eigenen Erfahrungen und für Interbase, aber letztens hat irgendwo Jeff Overcash genau ein solches Verhalten beschrieben. Der müßte es eigentlich wissen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr. |
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-2025 by Thomas Breitkreuz