S.A.
DxDbgridde filtereleme yaptıktan sonra filtertext i alıyorum ve update tablo set where filtertext ile güncelleme yapmak istiyorum. ancak veritabanı oracle olduğu için filtertext teki tarih alanlarını örneğin tarih<'10.01.2005' olarak aldığı için hata oluşuyor. ben dxdbgridde filtreleme yaparken hangi olaya ne yazıp filtertexti değiştirebilirim? dxdbgriddeki yazabileceğim tek events onfilterchanged olayı gözüküyor ama orda data tipini yakalayamıyorum filtertextin tamamını gösteriyor.
dxdbgridde tarih filtrelerken?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
dxdbfilter.pas dosyasında şu şekilde değiştirerek sorun çözüldü:
function GetCriteriaValue(AItem: TdxCriteriaItem): string;
var
AVarType: Integer;
begin
if AIsCaption then
Result := AItem.DisplayValue
else
begin
Result := VarToStr(AItem.Value);
AVarType := VarType(AItem.Value);
if (AVarType = varString) then
Result := '''' + Result + '''';
if (AVarType = varDate) then
Result:='to_date('+ quotedstr(Result) + ','+QuotedStr('dd.mm.yyyy')+')';
end;
end;
function GetCriteriaValue(AItem: TdxCriteriaItem): string;
var
AVarType: Integer;
begin
if AIsCaption then
Result := AItem.DisplayValue
else
begin
Result := VarToStr(AItem.Value);
AVarType := VarType(AItem.Value);
if (AVarType = varString) then
Result := '''' + Result + '''';
if (AVarType = varDate) then
Result:='to_date('+ quotedstr(Result) + ','+QuotedStr('dd.mm.yyyy')+')';
end;
end;