AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Hilfe für Anfänger SQL
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe für Anfänger SQL

Ein Thema von schniede · begonnen am 27. Sep 2003 · letzter Beitrag vom 1. Okt 2003
Antwort Antwort
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#1

Hilfe für Anfänger SQL

  Alt 27. Sep 2003, 22:04
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:
procedure TForm1.Button1Click(Sender: TObject);
begin

 query1.sql.clear;
Query1.SQL.Text :='insert into langzeittabelle (Summe)values(10)';
 Query1.ExecSQL;

end;
So nicht!!
Code:
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;
P.S:Was müßte ich für edit und delete schreiben?
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
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Hilfe für Anfänger SQL

  Alt 28. Sep 2003, 06:53
Zitat von schniede:
.....
So nicht!!
Code:
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;
P.S:Was müßte ich für edit und delete schreiben?
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
Hai schniede,

a) Frage 1
Versuche mal das Datum in Hochkommatas zu setzen (').

b) EDITE
 UPDATE tabelle SET feldname = wert WHERE bedingung
Code:
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;
Wenn du verschiedene Felder gleichzeitig ändern möchtest werden diese nach dem SET durch kommas getrennt:
 UPDATE tabelle SET feldname1=wert1 , feldname2=wert2 , feldname3=wert3 WHERE bedingung c) DELETE
c.1) Alle Zeilen einer Tabelle löschen
DELETE tabelle c.2) Teilmenge einer Tabelle löschen
DELETE FROM tabelle WHERE bedingun
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
 query1.sql.clear;
 Query1.SQL.Text :='DELETE FROM langzeittabelle WERE datum = '22.09.2003';
 Query1.ExecSQL;
end;
Hoffe das hilft dir.

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
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#3

Re: Hilfe für Anfänger SQL

  Alt 28. Sep 2003, 09:45
Hy Sharky!!

Hilft mir natürlich erst mal weiter.

Datum in Hochkomma funzt nicht.

Code:
begin

 query1.sql.clear;
Query1.SQL.Text :='insert into langzeittabelle (Datum,Summe)values('22.08.2003',10)';
 Query1.ExecSQL;

end;
[Fehler] Kundenverwaltung.pas(1230): Operator oder Semikolon fehlt

??? bin ich zu blöd (.

mfg schniede
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#4

Re: Hilfe für Anfänger SQL

  Alt 28. Sep 2003, 10:02
ich noch ma!

Code:
query1.sql.clear;
 Query1.SQL.Text :='DELETE FROM langzeittabelle WERE datum = '18.09.2003';
 Query1.ExecSQL;
bekomme auch die Fehlermeldung:[Fehler] Kundenverwaltung.pas(1235): Operator oder Semikolon fehlt

vieleicht kannst du noch mal ein Blick drauf werfen Sharky ?

schniede
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Hilfe für Anfänger SQL

  Alt 28. Sep 2003, 10:08
Zitat von schniede:
ich noch ma!

Code:
query1.sql.clear;
 Query1.SQL.Text :='DELETE FROM langzeittabelle WERE datum = '18.09.2003';
 Query1.ExecSQL;
bekomme auch die Fehlermeldung:[Fehler] Kundenverwaltung.pas(1235): Operator oder Semikolon fehlt

vieleicht kannst du noch mal ein Blick drauf werfen Sharky ?

schniede
Hai,

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:
query1.sql.clear;
 Query1.SQL.Text :='DELETE FROM langzeittabelle WHERE datum = '
  + QuotedStr ('18.09.2003');
 Query1.ExecSQL;
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.

Noch mal zum Verständiss: Der SQL-String muss so aussehen
 DELETE FROM langzeittabelle WERE datum = '18.09.2003' Dummerweise werden in Delphi Strings halt auch in ' eingeschlossen.
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
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#6

Re: Hilfe für Anfänger SQL

  Alt 28. Sep 2003, 10:25
Danke Sharky!!

Funzt!!!

Code:
begin
 query1.sql.clear;
 Query1.SQL.Text :='DELETE FROM langzeittabelle WHERE datum = '
  + QuotedStr (datetostr(vonpicker.date));
 Query1.ExecSQL
end;
Nur wie kann ich hier vonpicker.dateeinbauen???

Code:
begin

 query1.sql.clear;
Query1.SQL.Text :='insert into langzeittabelle (Summe,Datum)values( 10,"09/12/2003")';
 Query1.ExecSQL;

end
mfg schniede
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Hilfe für Anfänger SQL

  Alt 29. Sep 2003, 06:11
Zitat von schniede:
....
Nur wie kann ich hier vonpicker.dateeinbauen???
Na genauso!

Code:
begin
 query1.sql.clear;
Query1.SQL.Text :='insert into langzeittabelle (Summe,Datum)values( 10,'
   + QuotedStr (DateToStr (vonpicker.date))
   + ')';
 Query1.ExecSQL;
end
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Honie

Registriert seit: 27. Sep 2003
Ort: Bielefeld
39 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Hilfe für Anfänger SQL

  Alt 1. Okt 2003, 08:18
Statt QuotedStr kannst Du auch zwei Hokommata in Folge schreiben:

var
a: string;

begin
a := 'Hier steht ein Hochkomma: ''!';
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Hilfe für Anfänger SQL

  Alt 1. Okt 2003, 08:37
Zitat von Honie:
Statt QuotedStr kannst Du auch zwei Hokommata in Folge schreiben...
Jep, ich persönlich finde QuotedStr halt leserlicher
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Hilfe für Anfänger SQL

  Alt 1. Okt 2003, 10:00
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 Uhr.
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