Arsip: [tanya] hubungan reflexive
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
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.
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
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.
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??????
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
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????
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.
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
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- Setting Tgl Untuk SQL Pada Sintax DiDelphi
by umarbakri in Hal umum tentang Pascal Indonesia more 18 years ago - Query pada SQL Server - akses variable bit
by shindo in Hal umum tentang Pascal Indonesia more 16 years ago - ngarahin penyimpanan ke server 2(buat nampilinnya)
by lela in Tip n Trik Pemrograman more 17 years ago - Help buat program internet pakai delphi ?....
by putu_niki in Tip n Trik Pemrograman more 16 years ago - Koq Situs ini bahasanya campur aduk ya ????
by EkoIndri in Kritik & Saran more 18 years ago - komponen web browser
by boediman in Multimedia & Graphic Enhancement more 16 years ago - Membuat SCADA dengan Delphi
by aandrie77 in Enginering more 11 years ago - Ngeload data dari File Notepad ke MySQL
by Yudho in MySQL more 17 years ago - mata uang baru, kurs hari ini
by LuriDarmawan in OOT more 15 years ago - XP Manifest in Delphi
by Manz in Enginering more 17 years ago