CSRehber.fieldbyname('ECIK_KODU').asinteger:=CSRehber.fieldbyname('ECIK_KODU').asinteger+1;
Bu kodla ECIK_KODU 1 artırmaya çalışıyorsun, ama artıramazsın çünkü csrehber sql sorgusu ve readonly çalışır. Sadece sonuç döndürür.
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1);
Bu kodla Edit1 in içerigindeki rakamı neyse 1 artırıyorsun, bu procedure girdiginde program her seferinde 1 artıracaktır. Bu da son derece gereksiz.
CSRehber.Active:=True;
CSRehber i open ile işlettin bir daha niye aktif yapıyorsun.
Algoritmada programı kafanda satır satır işletip, ne zaman ne olacagına karar verirsin. Burada kodun ne yaptıgı konusunda en ufak fikrin yok, sagdan soldan buldugun kodları birleştirip birşey yapmaya çalışıyorsun.
Dogru kod şu şekilde olmalı:
Kod: Tümünü seç
CSRehber.Close;
CSRehber.sql.clear;
CSRehber.sql.add('SELECT MAX(ECIK_KODU) from TBLEMANET');
CSRehber.open;
if not csrehber.Fields[0].isNull then Edit1.Text:=IntToStr(csRehber.Fields[0].AsInteger+1);
CSRehber.Close;