SOLVED: DBGrid SQL Select from like problem.

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Bernie110
Beiträge: 120
Registriert: Mo 10. Feb 2020, 17:43

SOLVED: DBGrid SQL Select from like problem.

Beitrag von Bernie110 »

Hallo,

also dieses DBGrid macht mir echt zu schaffen. Man kann hierzu viel googeln aber irgendwie komme ich mit meinen Suchbegriffen nicht weiter.

Ich möchte eigentlich nur über zwei Edit Felder Daten eingeben und mittels dieser filtern :-)
Dazu wollte ich folgenden Code verwenden.
Es funktioniert auch alles ..solange ich Daten in meine Such Edit Felder eingebe, welche auch vorhanden sind.
GIbt es keine Daten hierzu steigt Lazerus ohne Fehlermeldung mit *bling* aus und ich befinde mich wieder in der Entwicklungsumgebung.
Jemand eine Idee ?

Code: Alles auswählen

procedure Tfrm_Stamm_Land.BT_FILTERClick(Sender: TObject);
var
    XLand_lang : String;
    XKontinent : String;
begin
 
   XLand_Lang := SUCH_LAND.text;
   XKontinent := SUCH_Kontinent.text;
 
 SQLQuery1.close;
 SQLQuery1.SQL.Clear;
 SQLQuery1.SQL.Add('select * from STAMM_LAND WHERE Land_Lang Like '''+XLand_Lang+'%'' and Kontinent Like '''+XKontinent+'%'';');
 SQLQuery1.open;
 
 //DBGrid1.refresh;
 SUCH_LAND.setfocus;
end;


Danke für eure Hilfe Lg Bernie
Zuletzt geändert von Bernie110 am Sa 29. Feb 2020, 17:36, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: DBGrid SQL Select from like problem. Lazerus steigt aus

Beitrag von af0815 »

Steige bitte auf Queries mit Parametern um. Das Stringgefrickel mit den Hochkommas und Sonderzeichen im String ist immer eine Gefahrenquelle. Zum Austieg mit bling, hast du irgwndwann gesagt, das er irgendwelch Exceptions unterdrücken soll ?
Setze dir in der IDE einen Brakepoint und steppe das Programm dann durch. Dann sieht man wo es bling macht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Bernie110
Beiträge: 120
Registriert: Mo 10. Feb 2020, 17:43

Re: DBGrid SQL Select from like problem. Lazerus steigt aus

Beitrag von Bernie110 »

alles klar...danke
er steigt aus, da er keinen Wert findet... und bei DrowCell dieser
Code ein Bild benötigt..welches logischerWeise nicht geliefert werden kann :roll:

Code: Alles auswählen

var
 
  pic: TBitMap;
  foto : string;
begin
 if Column.Index=1 then
 begin
      pic := TBitMap.Create;
      try
      foto := SQLQuery1.FieldByName('FLAG_PATH').AsString;
      pic.LoadFromFile(foto);
      DBGrid1.Canvas.Draw(Rect.left, Rect.Top, pic);
      DBGrid1.Canvas.StretchDraw(Rect, pic);
     finally
     pic.Free;
   end;
 end;


Jetzt wäre die Frage wie und wo man hier eine Fehlerbehandlung die das berücksichtigt einsetzt.

Bernie110
Beiträge: 120
Registriert: Mo 10. Feb 2020, 17:43

Re: DBGrid SQL Select from like problem. Lazerus steigt aus

Beitrag von Bernie110 »

ich denke ich habe das Problem hiermit gelöst.
Würdet ihr das auch so machen ?

Code: Alles auswählen

var
 
  pic: TBitMap;
  foto : string;
begin
 if Column.Index=1 then
 begin
      pic := TBitMap.Create;
      try
      foto := SQLQuery1.FieldByName('FLAG_PATH').AsString;
       if foto <>'' then
           begin
              pic.LoadFromFile(foto);
              DBGrid1.Canvas.Draw(Rect.left, Rect.Top, pic);
              DBGrid1.Canvas.StretchDraw(Rect, pic);
           end;
 
     finally
     pic.Free;
   end;
 end

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: DBGrid SQL Select from like problem. Lazerus steigt aus

Beitrag von Winni »

Hi!

Und wenn nun ein böser Mensch "foto" auf der Platte gelöscht hat?

Code: Alles auswählen

 if (foto <>'') and FileExists(foto) then
           begin
           ...


Winni

Bernie110
Beiträge: 120
Registriert: Mo 10. Feb 2020, 17:43

Re: DBGrid SQL Select from like problem. Lazerus steigt aus

Beitrag von Bernie110 »

Super ! Herzlichen Dank für eure Hilfe ! Lg Bernie

Antworten