掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
乱数を振り当てランダムにある一定数のデータを取得するには? (ID:36625)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
delphi4 servicepack3 database:oracle 8iを使用しています。 今、ランダムに数字をデータに振り分け、その中で数字の5なら5とその数をもつデータを指定のかず分抽出する方法を試しています。ただ、非常に複雑な構文のため、なかなかうまく機能しません。たびたびすみませんが、お力を貸していただけないでしょうか? 流れとしては、まずテーブルに乱数をいれるための項目と、乱数取得フラグ項目を設置する→クエリを開いて、乱数を入れるための項目に乱数を振り当てる→乱数で数字の5が振り当てられたデータに対して乱数フラグに1を立てる→それをテーブルにあるデータすべてに対して行う(テーブルデータの最後まで)→その処理を指定したデータ数(30なら30個分のデータ)だけ取得するまで行う→最後に抽出する。 下記のように、プログラムを組んでみました。恐れ入りますが、どう修正すればいいか詳しく指摘していただけないでしょうか(別に、もっとシンプルにできる方法をご存知でしたら、教えていただければ幸いです)? begin query.sql.clear; query.sql.open; begin repeat while not query.EOF do begin randomize; s_randomCode := random(10) + 1; with queryA do begin sql.add('Update tableA set randomCD = :value1'); sql.add('where randomFLG <> 1'); prepare; params[0].AsString := s_randomCode; if s_randomCode = 5 then begin count := count + 1; sql.add('update tableA set randomFLG = 1'); end; next; end; end; until count = StrToInt(number.Text); ExecSql; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.