Arsip: buat stored procedure..

 
user image
more 17 years ago

her1z_yu2n

maap kalo repost.. gini saya punya masalah.. uhmm saya pake database interbase.. ada tabel soal terus dari tabel soal itu saya mo mengeluarkan di dbgrid itu udah bissa... permasalahan saya di sini adalah bagaimana caranya supaya sayah bisa merandom record dari tabel soal kemudian dimasukkan ke dalam dbgrid.. nah itu dia.. mohon bantuannya :D
user image
more 17 years ago

DelphiExpert

walah... ngga' sinkron antara post subject ama yg ditanyakan, tak jitak kowe! -->> ya tinggal dirandom aja

Randomize;
// pastikan table soal menggunakan ID yg urut
IDX:= RandomRange(1, 100); // asumsi data soal ada 1 - 100
Query.SQL.Text:= 'SELECT * FROM SOAL WHERE SOAL_ID = :SOAL_ID';
Query.Params[0].AsInteger:= IDX;
Query.Open;
...
user image
more 17 years ago

saysansay

Hak...hak..hak...Mau Protes ach sama @DE Gimana Klu Record di Random berdasarkan RecordCount yang ada!!hak...hak..Rubah dikit ah kodingnya

Var
  IDX : Integer;
Bagin
if not Query.Active then
begin
  Randomize;
  Query.Active:=True
  IDX:= RandomRange(1, Query.RecordCount); // asumsi data soal ada 1 - 100
  Query.Close;
  Query.SQL.Text:= 'SELECT * FROM SOAL WHERE SOAL_ID = :SOAL_ID';
  Query.Params[0].AsInteger:= IDX;
  Query.Open;
end;
Setuju Mas Jitak...aja...hak..hak..hak..hak..
user image
more 17 years ago

mat_koder

pertanyaan lanjutan yg tentunya relevan adalah : bagaimana mengurut 100 bank soal tsb secara random dalam DBGrid... dengan cara yg se-efisien mungkin.... apa harus dengan 100 kali query? atau lebih ? atau syukur-syukur bisa cuman 1 kali query. ... sebagai semacam pengisi waktu luang... ini kali bisa dijadiin kontes... mencari metoda yg paling efisien... hayo..... siapa berani coba ...? -
user image
more 17 years ago

yayaretina

bisa juga langsung DB nya.. for example MySql. Randomize satu record;
CREATE PROCEDURE soal_select()
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
DECLARE Tot INT;
DECLARE TotInt INT;
SELECT COUNT(id_soal) INTO Tot
FROM soal;
  
SELECT FLOOR(1 + (RAND()  Tot)) INTO TotInt;
SELECT
   
FROM
soal WHERE
id_soal=TotInt;
END;
Semua record dengan randomize :
CREATE PROCEDURE soal_selects()
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
SELECT
*
FROM
soal a
ORDER BY RAND();
user image
more 17 years ago

her1z_yu2n

//MOHON MAAF SOAL SUBJECT NYA YANG GA NYAMBUNG.. //SOALNYA KEMAREN SAYA ADA BERTANYA KE TEMEN KAYAKNYA NYELESEIN //MASALAH INI ENAKNYA PAKE STORED PROCEDURE //YANG SAYA JUGA BELUM BISA MAKENYA //BERIKUT SOURCE CODE SAYA //PERMASALAHAN SEKARANG KENAPA DI DBGRID SAYA BELUM MUNCUL LAGI //UNTUK RECORDNYA?? //TETAPI NAMA FIELDNYA ADA DI DBGRID ITU //RECORDNYA SAJA KOSONG //KOMPONEN IBQUERYNYA UTK PROPERTIES SQL DI KOSONGKAN KAN?? //TERUS DI DB GRID ITU LANGSUNG MAKE DATASET YANG TELAH DIHUBUNGKAN //KE KOMPONEN IBQUERY1 INI KAN?? //FIELD YANG AKAN DI RANDOM SUDAH SAYA UBAH KE TIPE INTEGER.. //MOHON PENCERAHAN DARI SAUDARA SEKALIAN.... procedure TForm6.Button1Click(Sender: TObject); Var IDX : Integer; Begin if Not FORM6.IBQuery1.Active then begin Randomize; IDX := RandomRange(1,IBQuery1.RecordCount); form6.IBQuery1.close; form6.IBQuery1.SQL.Clear; //asumsi data soal ada 1 - 100 Query.Close; form6.IBQuery1.SQL.TEXT:='SELECT * FROM SEMENTARA WHERE ID_S = :ID_S'; form6.IBQuery1.Params[0].AsInteger:=IDX; form6.IBQuery1.Open; end; end;
user image
more 17 years ago

EkoIndri

buat mas her1z_yu2n Silahkan kode program diatas diubah menjadi seperti ini

procedure AcakData(list : TStrings) ;
var
  No: integer;
  Indek: integer;
begin
Randomize;
for Indek := 0 to -1 + list.Count do
  begin
  No := Random(-Indek + list.Count) ;
  list.Exchange(Indek, Indek + No) ;
  end;
end;
procedure TForm6.Button1Click(Sender: TObject);
var
Temp : TStringList;
begin
Temp := TStringList.Create;
for indek := 1 to 100 do
  Temp.Add(IntToStr(indek));
AcakData(Temp);
for indek := 1 to 100 do
  begin
  if Not FORM6.IBQuery1.Active then
    begin
    form6.IBQuery1.close;
    form6.IBQuery1.SQL.Clear;
    //asumsi data soal ada 1 - 100 Query.Close;
    form6.IBQuery1.SQL.TEXT:='SELECT * FROM SEMENTARA WHERE ID_S = :ID_S';
    form6.IBQuery1.Params[0].AsInteger := StrToInt(Temp[indek]);
    form6.IBQuery1.Open;
    end;
  end;
end;
Semoga terselesaikan juga
user image
more 17 years ago

yayaretina

ck..ck..ck..ck... semakin dilupakan... http://pascal-id.org/thread/unknown/336/view-old-thread/ harus banyak2 permisi dulu nih..
user image
more 17 years ago

her1z_yu2n

tanpa saya sadari saya telah melanggar beberapa peraturan forum... semoga tida terulang lagi.. setelah saya liat2 lagi, ternyata codingan yang sebelumnya itu hanya untuk menampilkan satu record... sedangkan yang saya sedang coba lakukan adalah merandom susunan record yang ada di tabel soal.. artinya apabila terdapat 20 record hanya susunannya yang random.. kalo SELECT * FROM SEMENTARA kan record yang muncul itu urut dari 1-20.. bagaimana jika saya ingin merandom susunan record yang akan muncul... terima kasih
user image
more 17 years ago

EkoIndri

[quote="yayaretina"]ck..ck..ck..ck... semakin dilupakan... http://pascal-id.org/thread/unknown/336/view-old-thread/ harus banyak2 permisi dulu nih..[/quote] Mungkin khilaf mas.... aku sendiri kemarin juga dapat teguran aku pun juga tidak merasa melupakan ( dulu tidak lengkap bacanya... he...3x ) btw usul ma admin neh.... bagaimana lain kali klo negur itu lewat PM, mungkin lebih baik @her1z_yu2n Begini aja mas lebih baik randomnya di database enginenya aja. Jadi tidak repot di delphi
more ...
  • Pages:
  • 1
  • 2
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com