dbgridde sort hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

dbgridde sort hatası

Mesaj gönderen kazimates »

dbgrid uzerinde a dan z veya z den a ya sort ederken şu şekilde bir hata alıyorum

current provider does not support the necessary interfaces for sorting or filtering

yazdığım kod ise şu şekilde

procedure TDisilerForm.DBGrid1TitleClick(Column: TColumn);
{$J+}
const PreviousColumnIndex : integer = 1;
{$J-}
begin
if (dbgrid1.DataSource.DataSet is TCustomADODataSet) and ( not
column.Field.IsBlob) then
with TCustomADODataSet(dbgrid1.DataSource.DataSet) do
begin
try
dbgrid1.Columns[PreviousColumnIndex].title.Font.Style :=
dbgrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
except
end;

Column.title.Font.Style :=
Column.title.Font.Style + [fsBold];
PreviousColumnIndex := Column.Index;

if (Pos(Column.Field.FieldName, Sort) = 1) and (Pos(' DESC', Sort)= 0)
then
Sort := Column.Field.FieldName + ' DESC'
else
Sort := Column.Field.FieldName + ' ASC';
end;
end;




bunu nasıl cozebiliriz acaba?
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

clUseClient ı değiştirin

Mesaj gönderen kazimates »

ADOOlaylarTable ın CursorLocation özelliğini clUseClient olarak değiştirince problem çözülüyor birde sort olatında soru da ki
const PreviousColumnIndex : integer = 1;
kısmında -1 olarak veriliyordu o şekilde çalışmıyor ve bunu muhakkak 1 olarak yazmalıyız.
bu arada MS SQL Server 2000 ve OLEDB provider kullanılıyor.
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

Mesaj gönderen xcom »

Benimde bu sorunun aynısı var. şimdi onla uğraşıyorum. cluseserver seçince sort etmiyor. bunu nasıl yaparız bi yol gösteren olursa çok makbule geçecek 4 gündür uğraşıyorum ama bi sonuç alamadım. aradım ama bulamadım.
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
Kullanıcı avatarı
xcom
Üye
Mesajlar: 83
Kayıt: 05 Ağu 2003 05:56

Mesaj gönderen xcom »

Ben bu sorunu Şu şekilde çözdüm. DBgrid ontitleclick aşağıdaki kodu kendi yapınız ve sorgunuza göre düzeltin. basitce column tıklanınca fieldname ile alanın adını alıyuorum sonrasında SQL sorgu cümlesinin sonuna "order by" ın yanına değişken ile atıyorum. hepsi bu kadar.

Kod: Tümünü seç

xcorder:=Column.FieldName;

         edit3.Text:='select * from fatsatic where (fattipall = ''1'') and ( Fattarihi >= '''+edit1.Text+ ''' AND Fattarihi <= '''+edit2.Text+ ''') order by '+xcorder ;

     dmf.fatalsattx.Close;
     dmf.fatalsattx.sql.Clear;
     dmf.fatalsattx.sql.Add(edit3.Text) ;
     dmf.fatalsattx.Open;
--------------------------------------------------------------------------------------------------

Sadece iylik için yaşa ve iylik ile hayat et...

-------------------------------------------------------------------------------------------------
Cevapla