Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit Sql Statement (https://www.delphipraxis.net/111495-problem-mit-sql-statement.html)

Borschti 4. Apr 2008 11:36


Problem mit Sql Statement
 
Hallo mal wieder ;)

Ich habe ein kleines Problem mit einem SQL Statement, und zwar will ich eine ganz simple Abfrage mit meiner Query machen die so in SQL aussehen würde:
SQL-Code:
SELECT * FROM art WHERE ArtNr = '10000'
Nun gibt es aber ein Problem mit den Hochkommas um die 10000, das wollte ich so lösen:
Delphi-Quellcode:
SQL.Add('SELECT ArtNr FROM art');
SQL.Add('WHERE (ArtNr = ' + QuotedStr(VddQuery1.Fieldbyname('ArtNr').asstring) + ')'); // Hier die Fehlermeldung!
Sql.Add('ORDER BY ArtNr');
Ich bekomme aber eine Fehlermeldung die besagt das das Feld ArtNr nicht gefunden wurde, Ich bin mir 100% sicher das das Feld in der Spalte ArtNr mit dem Inhalt 10000 existiert.

Woran kann das liegen?

mfg
Alex

mkinzler 4. Apr 2008 11:40

Re: Problem mit Sql Statement
 
Stimmt die Groß-/Klein-Schreibung des Feldes überein?

DP-Maintenance 4. Apr 2008 11:42

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Sonstige Fragen zu Delphi" nach "Datenbanken" verschoben.
Ist hier sicher besser aufgehoben.

Sharky 4. Apr 2008 11:46

Re: Problem mit Sql Statement
 
Hai Borschti,

wie sieht denn der SQL-Befehl von VddQuery1 aus?

Borschti 4. Apr 2008 11:48

Re: Problem mit Sql Statement
 
Ja, da bin Ich mir absolut sicher, groß A rt groß N r xD

Aldo alles zusammen siehts so im Code aus:
Delphi-Quellcode:
With VddQuery1 do
  begin
   Close;
   SQL.Clear;
   SQL.Add('SELECT ArtNr FROM art');
   SQL.Add('WHERE (ArtNr = ' + QuotedStr(VddQuery1.Fieldbyname('ArtNr').asstring) + ')');
   Sql.Add('ORDER BY ArtNr');
   Open;
  end;

5etH 4. Apr 2008 11:48

Re: Problem mit Sql Statement
 
warum benutzt du nicht standard elemente für die ADS datenbank

Sharky 4. Apr 2008 11:49

Re: Problem mit Sql Statement
 
Zitat:

Zitat von Borschti
Ja, da bin Ich mir absolut sicher, groß A rt groß N r xD

Aldo alles zusammen siehts so im Code aus:
Code:
With [b]VddQuery1[/b] do
  begin
   [b]Close;[/b]
   SQL.Clear;
   SQL.Add('SELECT ArtNr FROM art');
   SQL.Add('WHERE (ArtNr = ' + QuotedStr([b]VddQuery1[/b].Fieldbyname('ArtNr').asstring) + ')');
   Sql.Add('ORDER BY ArtNr');
   Open;
  end;

Du kannst doch nicht auf ein Feld des Querys zugreifen wenn des geschlossen ist.

Borschti 4. Apr 2008 12:10

Re: Problem mit Sql Statement
 
Ok ;) also habs jtz so,
Delphi-Quellcode:
SQL.Add('WHERE (ArtNr = ' + QuotedStr(Edit1.Text)+')');
Danke.

RavenIV 4. Apr 2008 12:15

Re: Problem mit Sql Statement
 
Entweder hast Du uns bei der Query etwas vorbehalten, oder die Query macht keinen Sinn.
Du lässt Dir die ArtNr geben, wo die ArtNr = <Nummer> ist.

Borschti 4. Apr 2008 14:16

Re: Problem mit Sql Statement
 
Naja das mit dem Editfeld war nur ein Zwischenschritt, Ich wollte es so machen das ausgewählt werden kann von welchem bis welchem Datensatz der Tabelle die Query gefüllt werden soll ;)

Also es sieht jetzt so aus:
Delphi-Quellcode:
SQLSmt := 'WHERE (ArtNr >= ' + QuotedStr(Edit1.Text)+ 'AND ArtNr <= '+QuotedStr(Edit2.Text)+')';


 With VddQuery1 do
  begin
   Close;
   SQL.Clear;
   SQL.Add('SELECT * FROM art');
   SQL.Add(SQLSmt);
   Sql.Add('ORDER BY ArtNr');
   Open;
  end;
Danke für die Hilfe, aber das mit
Delphi-Quellcode:
SQL.Add('WHERE (ArtNr = ' + QuotedStr(VddQuery1.Fieldbyname('ArtNr').asstring) + ')');
war wirklich unbedacht, hatte es einfach aus einem Beispielprogramm rauskopiert und mich dann drin verbissen :roll:

mkinzler 4. Apr 2008 14:21

Re: Problem mit Sql Statement
 
Ich würde dir aber zum Einsatz von (SQL-)Parametern raten.

Borschti 4. Apr 2008 15:52

Re: Problem mit Sql Statement
 
Naja das Programm muss nicht Felxibel sein weil es nur auf eine Tabelle angewandt wird die nur ein memofeld hat auf welches sich das anwenden lässt ^.^

Aber aus reiner neugier, wie würde ich das denn machen können? Oder wohl eher wie meinst das, für was Prameter einsetzen?

mfg
Alex

mkinzler 4. Apr 2008 15:57

Re: Problem mit Sql Statement
 
SQL-Code:
SELECT
    * 
FROM
    art
WHERE
    ArtNr between :von and :bis
ORDER BY
    ArtNr;

Borschti 4. Apr 2008 16:21

Re: Problem mit Sql Statement
 
Ah ok, between kannte Ich noch nicht, danke für den Hinweis :)

DeddyH 4. Apr 2008 17:02

Re: Problem mit Sql Statement
 
Es ging aber nicht primär um das BETWEEN, sondern die Parameter von und bis.


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