Arsip: kode Plus 1 next ....

 
user image
more 13 years ago

flamade

bro delphiers semuaaa nanya nih saya kan punya data di tabel A, field KODE dengan nilai "K0001" trus tiap kali kita menekan tombol Add, akan menambah KODE baru dengan nilai "K0002" , "K0003" dst dengan penambahan plus 1 (satu). gimana ya syntax program yang harus di sisipkan ? kalo bisa dengan SQL pleaseee bingun neeeh
user image
more 13 years ago

DelphiExpert

- ORACLE pakai sequence - Interbase/Firebird pakai generator - MS-Access/Paradox pakai AutoInc dng masking :mrgreen: - atau bikin value sendiri, banyak yg udah ngebahas, silahkan search...
user image
more 13 years ago

reminder2k1

function xxx: string;
var Query: TADOQuery;
    NoUrut: integer;
    No: string;
begin
     Query:=TADOQuery.Create(Application);
     Query.Connection:=Modul.DBStock;
     Query.Close;
     Query.SQL.Clear;
     Query.SQL.Add('SELECT KODE FROM TTable');
     Query.SQL.Add('ORDER BY KODE');
     Query.Open;
     if Query.RecordCount>0 then begin
        Query.Last;
        NoUrut:=StrToInt(Copy(Query.Fields[0].AsString,2,4))+1;
     end else
         NoUrut:=1;
     No:=IntToStr(NoUrut);
     case Length(No) of
     1 : No:='000'+No;
     2 : No:='00'+No;
     3 : No:='0'+No;
     end;
     Result:='K'+No;
     Query.Destroy;
end;
user image
more 13 years ago

zieborg


     if Query.RecordCount>0 then begin
        Query.Last;
        NoUrut:=StrToInt(Copy(Query.Fields[0].AsString,2,4))+1;
     end else
         NoUrut:=1;
     No:=IntToStr(NoUrut);
     case Length(No) of
     1 : No:='000'+No;
     2 : No:='00'+No;
     3 : No:='0'+No;
     end;
xii..xii.., yakin nih kode jalan sesuai harapan :? kalo no-nya '0001' -> strtoint('0001') hasilnya pasti 1, bukan 0001 lagian repot amat pake case statement, kalo nomornya 10 digit bakal ada 10 kondisi :o pake aja formatfloat('0000',nourut) lagian topik ini udah banyak dibahas, mestinya @flamade itu search dulu gitu..
user image
more 13 years ago

ImanD

xiixiixiix mungkin ya ni dah sering dibahas, ya udah aku sederhanain az dech dari @reminder2k1

function SQLShort(param: String): integer;
begin
  with Query do
  begin
    Close;
    SQL.Text:=param;
    Open;    
    Result:=0;
    if not IsEmpty then
      Result:=Fields[0].AsInteger;    
  end;
end;
begin
  Edit1.Text:=FormatFloat('K0000',SQLShort('SELECT Max(Right(Kode,4)) FROM Table')+1);  
  // klo ga ada fungsi max jd
  // Edit1.Text:=FormatFloat('K0000',SQLShort('SELECT Right(Kode,4) FROM Table ORDER BY Kode DESC')+1);
end;
user image
more 13 years ago

maulaku

kalo record MAX jika data ada yang terhapus gimana? kan bisa duplikasi
user image
more 13 years ago

cyber_hecker

waduh.. duplikasi bagaimana ? gak mungkin duplikasi, tapi mungkin ada nomor meloncat. contoh nomor terakhir adalah A100. trus di delete nomor A099, maka nilai max tetep 100 dan kode berikutnya adalah MAX + 1 atau A101. kalo yang didelete adalah A100 maka nilai max adalah A099 yaitu MAX = 99. nomor berikutnya MAX + 1
user image
more 13 years ago

ImanD

@maulaku yups betul sekali @cyber_hacker
user image
more 13 years ago

maulaku

siip mas ImanD,Cyber, thansk pencerahannya logikaku mungkin belum becus
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com