[DELPHI] i SQL

Odpowiedz Nowy wątek
2007-08-07 11:07

Rejestracja: 12 lat temu

Ostatnio: 2 lata temu

Lokalizacja: Grabina Wola

0

Witam!
Mam taki kod:

dm.logSET.Active:=false;
dm.logSET.CommandText:= 'select * from log where datamod' + ' > ''' + datetostr(logowanieData.dateTime) + ' 00:00:00' + '''' + ' and datamod < ''' + datetostr(logowanieData.dateTime+1) + ' 00:00:00''';
dm.logSET.Active:=true;

Niestety efektem jest pusta tabela, czyli nie wybiera zadnego rekordu. Po zrobieniu showmessage komunikat jest taki:

select * from log
where datamod > '2007-08-06 00:00:00' and datamod < '2007-08-07 00:00:00'

Czyli zapytanie prawidlowe (na konsoli sql dostaje dobra odpowiedz). Kiedy obetne zapytanie i pozostawie tylko:

dm.logSET.Active:=false;
dm.logSET.CommandText:= 'select * from log where datamod' + ' > ''' + datetostr(logowanieData.dateTime) + ' 00:00:00''';
dm.logSET.Active:=true;

to wpadaja wszystkie rekordy. O co chodzi? :(
Aha, wlasnie sprawdzilem, ze jak wstawie zamiast "AND" "OR" to dziala. Juz zgluplem :(

EDIT://

  dm.logSET.CommandText:= 'select * from log where datamod' + ' < ''' + datetostr(logowanieData.dateTime) + ' 00:00:00' + '''';

Taki zapytanie zwraca mi pusta tabele :(


pozdrawiam
Piotr Paszkowski aka patefoniQ
Obsługa informatyczna, Outsourcing IT - Łódź / łódzkie
syslink.pl

Pozostało 580 znaków

2007-08-07 11:39

Rejestracja: 16 lat temu

Ostatnio: 6 lat temu

0

Użyj parametrów.

select * from log
where datamod > :data1 and datamod < :data2

a potem,
....ParamByName('DATA1').AsDateTime := logowanieData.dateTime ...

Może to pomoże.

Pozostało 580 znaków

2007-08-09 15:13

Rejestracja: 12 lat temu

Ostatnio: 2 lata temu

Lokalizacja: Grabina Wola

0

Kompilator zglasza blad:

[Error] log.pas(48): Undeclared identifier: 'ParamByName'

//EDIT:

Nie wazne, zrobilem po swojemu parametry. Pomoglo. Very bardzo dzieki. Baaardzo... :) :) :)

//EDIT2:

Pojawil sie drugi problem. Wszystko ok. ale wyswietla pusta tablice, kiedy data filtra jest ostatnia data w tabeli. Zalozmy ze ostatnie zapisy byly z dzis i chce dla dzisiaj przyfiltrowac. Po selekcie wychodzi pusta tabela, ale dla dnia wczesniej juz dziala...

//EDIT3:
Nie wiem, kurde nie rozumiem tego juz :( Dziala tylko jedna data, tzn ze dla 8 sierpnia tylko dobrze filtruje, pomimo ze wszystkie rekordy sa takie same. Psychicznie zaczynam juz wysiadac, tym bardziej, ze z poziomu managera SQL wszystko dziala dobrze :( :( :( Dodam, ze juz wszystko do cholery mam w parametrach, nawet znaki wiekszosci, mniejszosci i rownosci...


pozdrawiam
Piotr Paszkowski aka patefoniQ
Obsługa informatyczna, Outsourcing IT - Łódź / łódzkie
syslink.pl

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0