Delphiben programozok. Az sql query (TStrings) -ben van egy ilyen kódom. Azt szeretném ha a '03/03/1015' helyébe az auktuális dátum + 2 nap lépne. Milyen megoldás van erre?
'''+twoday+''''
amikor aktiválni akarom a táblát hibát jelez:
Invalid field name: twoday
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Szia.
Én igy csinálnám :
Ha unitba rakod akkor, először a twoday-t mint string változót, deklarálni kell valahol (pl. a procedure vagy függvény elején) :
Var twoday : string ;
Aztán pediglen a procedure vagy függvényben a következőket kell elvégezni :
Begin
.
.
.
twoday:=FormatDatetime ('dd.mm.yyyy',Now+2);
Query1.Active:=False;
Query1.Sql:='SELECT SZAMLAK. "KOD", PARTNEREK. "Név", SZAMLAK. "HATÁRIDŐ" FROM "SZAMLAK. DBF" SZAMLAK, "PARTNEREK. DB" PARTNEREK WHERE ( SZAMLAK. KOD = PARTNEREK. KOD ) AND HATÁRIDŐ > '+chr (39)+twoday+chr (39);
Query1.Active:=True;
.
.
.
End ;
Sok sikert.
üdv.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
#1 vagyok
Szerintem mindössze ennyi a feladat:
ezAzAStringAmibenAQuerydVan := '... DATE_ADD(NOW(), INTERVAL 2 DAYS) ...';
unit gyakorol2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids;
type
Tfrmgyak = class(TForm)
DBGrid1: TDBGrid;
Query1: TQuery;
DataSource1: TDataSource;
procedure DataSource1DataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmgyak: Tfrmgyak;
twoday : string ;
implementation
{$R *.dfm}
procedure Tfrmgyak.DataSource1DataChange(Sender: TObject; Field: TField);
begin
twoday:=FormatDatetime ('dd.mm.yyyy',Now+2);
Query1.Active:=False;
Query1.Sql:='SELECT SZAMLAK. "KOD", PARTNEREK. "Név", SZAMLAK. "HATÁRIDŐ" FROM "SZAMLAK. DBF"
SZAMLAK, "PARTNEREK. DB" PARTNEREK WHERE (SZAMLAK.KOD = PARTNEREK.KOD)
AND HATÁRIDŐ > '+twoday+';
Query1.Active:=True;
end;
end.
Így néz ki az egész de nem működik sajnos.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
#1,#13 vagyok
Légyszíves próbáld ki:
Query1.Sql:='SELECT SZAMLAK. "KOD", PARTNEREK. "Név", SZAMLAK. "HATÁRIDŐ" FROM "SZAMLAK. DBF" SZAMLAK, "PARTNEREK. DB" PARTNEREK WHERE (SZAMLAK.KOD = PARTNEREK.KOD) AND HATÁRIDŐ > DATE_ADD(NOW(), INTERVAL 2 DAYS);';
Illetve engedd meg, hogy javasoljam, hogy amíg ilyeneket írsz:
...'+twoday+';
és nem látod rajta, hogy szintaktikai hibás, addig ne játssz query-kkel, adatbázissal, hanem térj vissza a rajtkockára, és tanuld meg a Delphi szintaktikáját, illetve hogy hogyan kell String-eket konkatenálni. Az alapok hiányoznak, de már a tetőt építed, ez nem a helyes sorrend. Mindezt a legjobb szándékkal írom.
Elnézést, hogy értetlenkedem, de ez ha sikerül biztos hogy jól meg fogom jegyezni. Most egy az egyben a tiédet szúrtam be, de futtatáskor ezt a hibát írja:
[Error] gyakorol2.pas(33): Incompatible types: 'TStrings' and 'String'
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
SimkoL
beillesztettem a unitba amit küldtél. De amikor a táblát aktiválni akarom akkor ezt a hibát írja: Query1: No SQL statement aviable. Mit írjak az object inspector SQL (Tstrings) mezejébe?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!