Arsip: [tanya] hubungan reflexive

 
user image
more 18 years ago

grounders

Saya membuat data model dengan struktur hierarki. secara sederhana data model yg saya buat seperti ini tabel inventory dengan field 1. KODE_I 2. DESKRIPSI 3. KODE_I_TOP kemudian untuk mengambil data saya sudah menggunakan SQL dengan hubungan SQL Self Join. Misal data dalam tabel saya isi dengan 01 PC [NULL] 01A MOTHERBOARD 01 01B HARDDISK 01 SS ECS FSB 400 01A 02 LAPTOP [NULL] AD MAXTOR 01B (isian dapat acak) Dari isinya terlihat bahwa PC dan LAPTOP merupakan inventory produk tertinggi. dengan hubungan SQL Self Join yg hasil dari SQL tersebut adalah Inventory yg tidak mempunyai sub komponen tidak akan tampak. SELECT M.DESKRIPSI ATASAN, D.DESKRIPSI BAWAHAN FROM INVENTORY M, INVENTORY D WHERE M.KODE_I=D.KODE_I_TOP ORDER BY M.KODE_I DESC Hasilnya SS ECS FSB 400 01A AD MAXTOR 01B 01A MOTHERBOARD 01 01B HARDDISK 01 01 PC [NULL] Kemudian saya mengakalinya dengan menggunakan SQL SELECT * FROM INVENTORY ORDER BY KODE_I_TOP,KODE_I dengan SQL tersebut semua inventory akan tampak dan hasilnya mempunyai pola 01 PC [NULL] 02 LAPTOP [NULL] 01A MOTHERBOARD 01 01B HARDDISK 01 SS ECS FSB 400 01A AD MAXTOR 01B (pasti membentuk pola, urutan berbeda dengan isian tabel sebenarnya) Yang ingin saya tanyakan adalah, jika saya ingin mengambil data dari tabel inventory dengan hasil seperti di bawah ini 01 PC [NULL] 01A MOTHERBOARD 01 SS ECS FSB 400 01A 01B HARDDISK 01 AD MAXTOR 01B 02 LAPTOP [NULL] Saya berkeinginan agar data dari tabel inventory tersebut saya masukkan ke tabel lain sebelum ditampilkan ke user tetapi dengan urutan seperti yg saya inginkan. Ada yg bisa membantu saya membuat SQLnya agar menghasilkan isian seperti yg saya inginkan? thanks
user image
more 18 years ago

cyber_hecker

jawaban : tidak bisa. karena mau di order lewat apa aja gak ada yang bisa menghasilkan urutan seperti yang kamu inginkan. sebaiknya sistem pengkodean di perbaharui lagi.
user image
more 18 years ago

saysansay

yang ini jawaban kang cyber.h benar2 serius nga ada wakakakakanya...:D
user image
more 18 years ago

grounders

@cyber hecker & @All Sebaiknya sistem modelnya bagaimana? saya ingin agar data model yg ada dapat mengakomodasi hirarki dengan tingkat tak terbatas, jadi suatu produk dapat mempunyai sub-sub komponen yg banyak. mohon pencerahannya? thanks
user image
more 18 years ago

cyber_hecker

ya kita cuma butuh restrukturisasi kode kita. kalo gue biasanya mbikin kode untuk program yang kayak kamu punya dengan format kayak gini : 01.0.00 PC 02.0.00 LAPTOP 01.1.00 MOTHERBOARD 01.2.00 HARDDISK 01.1.01 ESC FSB 400 01.2.01 MAXTOR yach kira-kira gitu deh contoh sederhananya. gunakan format yang sudah tetap. jadi kalo di sorting kita bisa menggunakan kode-nya.
user image
more 18 years ago

grounders

@Cyber hecker thanks atas pencerahannya, dengan sedikit modifikasi saya dapet hasil yg saya inginkan, cuman yg sedikit saya bingungkan, kenapa syntax yg saya buat kagak berhasil diterapkan pada DBMS Ms Access dan berhasil pada MySQL, jadi bingung??????
user image
more 18 years ago

cyber_hecker

maksudnya syntax yang gimana ? mana contoh syntaxnya ? klo gak jelas gini, gue juga gak bisa mbantu yach. kalo syntax SQL memang antara mySQL dan access ada sedikit perbedaan. jadi harap maklum aja klo bisa di mySQL tapi gagal di access. hik.. hik.. :D
user image
more 18 years ago

grounders

@Cyber h Untuk Data modelnya di server Inventory: (satu y) KODE_I DESKRIPSI KODE_I_TOP User bisa memasukkan KODE tanpa batasan, kemudian user untuk melihatnya saya gunakan metode mengambil data dari server kemudian di save pada komputer lokal dengan data model Inventoryy : (dua y) KODE_I KODE_I_TOP DESKRIPSI KODE LEV smallint NO smallint KLP (saya gunakan untuk coding pengurutannya, agar bisa disorting sesuai saran kamu) untuk syntaknya with DM do begin try if not ACCESS.InTransaction then ACCESS.BeginTrans; QACCESS2.Close; QACCESS2.SQL.Clear; QACCESS2.SQL.Add('DELETE FROM INVENTORYY'); QACCESS2.ExecSQL; with ADOQuery1 do begin SQL.Clear; // 0 1 2 SQL.Add('SELECT KODE_I,DESKRIPSI,KODE_I_TOP FROM INVENTORY ORDER BY KODE_I_TOP,KODE_I'); Open; First; no := 0; while not Eof do begin if (Fields[2].AsString = '') or (Fields[2].IsNull) then begin no := no + 1; QACCESS1.Close; QACCESS1.SQL.Clear; // 0 1 2 3 4 QACCESS1.SQL.Add('INSERT INTO INVENTORYY(KODE_I,DESKRIPSI,LEV,KLP,NO) VALUES(:KI,:DES,:LV,:KLP,:NO)'); QACCESS1.Prepared; QACCESS1.Parameters.Items[0].Value:=Fields[0].AsString; QACCESS1.Parameters.Items[1].Value:=Fields[1].AsString; QACCESS1.Parameters.Items[2].Value:=0; QACCESS1.Parameters.Items[3].Value:=FormatFloat('###',no); QACCESS1.Parameters.Items[4].Value:=0; QACCESS1.ExecSQL; end else begin QACCESS2.Close; QACCESS2.SQL.Clear; // 0 1 2 QACCESS2.SQL.Add('SELECT LEV,NO,KLP FROM INVENTORYY WHERE KODE_I=:KI'); QACCESS2.Prepared; QACCESS2.Parameters.Items[0].Value:=Fields[2].AsString; QACCESS2.Open; QACCESS1.Close; QACCESS1.SQL.Clear; // 0 1 2 3 4 5 6 QACCESS1.SQL.Add('INSERT INTO INVENTORYY(KODE_I,KODE_I_TOP,DESKRIPSI,LEV,KODE,KLP,NO) VALUES(:KI,:KIT,:DES,:LV,:KD,:KLP,:NO)'); QACCESS1.Prepared; QACCESS1.Parameters.Items[0].Value:=Fields[0].AsString; QACCESS1.Parameters.Items[1].Value:=Fields[2].AsString; level := QACCESS2.Fields[0].AsInteger + 1; Spasi:=''; for i := 1 to level do Spasi := Spasi + ' '; QACCESS1.Parameters.Items[2].Value:=Spasi + Fields[1].AsString; QACCESS1.Parameters.Items[3].Value:=QACCESS2.Fields[0].AsInteger + 1; QACCESS1.Parameters.Items[4].Value:=Spasi + Fields[0].AsString; QACCESS1.Parameters.Items[5].Value:=QACCESS2.Fields[2].AsString + '.' + FormatFloat('###',QACCESS2.Fields[1].AsInteger + 1); QACCESS1.Parameters.Items[6].Value:=0; QACCESS1.ExecSQL; QACCESS1.Close; QACCESS1.SQL.Clear; QACCESS1.SQL.Add('UPDATE INVENTORYY SET NO=NO+1 WHERE KODE_I=:KI'); QACCESS1.Prepared; QACCESS1.Parameters.Items[0].Value:=Fields[2].AsString; QACCESS1.ExecSQL; end; Next; end; end; ACCESS.CommitTrans; ADOQuery2.Close; ADOQuery2.Open; except ACCESS.RollbackTrans; end; end; Setelah saya cek, ternyata SQL yg gagal pada Ms Access adalah SQL updatenya, Kalo memang beda, ada referensi yg bisa saya baca untuk mengatahui perbedaan SQL pada Access dgn MySQL kagak????
user image
more 18 years ago

cyber_hecker

hanya gagal kan ? tapi gak error ? kalo gak salah gagalnya yaitu semua record yang diubah nilainya menjadi satu (1) bukan nilai field + 1 ? betul ? @[dengan gaya zainuddin mz wakaka ;D]. kalo masalah query update aja. coba kamu ganti SQL nya kira-kira seperti ini :
UPDATE Table1 SET [No] = [No] + 1;
nah diberi tanda kurung siku. kalo gak salah kata No itu merupakan reserved word.
user image
more 18 years ago

grounders

yup tul hanya error, OK tak coba rubah SQLnya catt. Kalo dah kagak puasa bagi2 url filmnya donk.... hehehehehehe
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com