私はデータベースを持っていて、その中に「usersテーブル」があります。このテーブルには、ユーザー情報(site、nick、jeton、mail、sifre)を含む列があります。クレジット制をベースにしたプログラムを作ろうとしています。すべてのユーザーがプログラムを実行します。ユーザーのクレジットがリストボックス内のサイトの数(つまり、行数)と等しい場合、ユーザーのサイトはリストボックスに表示されます。それ以外の場合は表示されません。
データベースでは、「credits」列の値はリストボックスの行数と同じである必要があります。たとえば、ユーザーのクレジット値が4で、リストボックスに5行ある場合、ユーザーサイトはリストボックスに追加されません。ただし、ユーザーのクレジット値が5以上の場合、そのユーザーのサイトはリストボックスに追加(リスト)されます。
uyeler =テーブル
ニック=ユーザー名の列。
サイト=ユーザーサイト名の列。
jeton =ユーザークレジット列。
mail =ユーザーのメール列。
sifre =ユーザーパスワード列。
私はこれらを試しました。
MyQuery1.Close;
MyQuery1.SQL.Text :='SELECT jeton, site FROM uyeler WHERE jeton > 0 ORDER BY site';
MyQuery1.Open;
ListBox1.Items.Clear;
If (MyQuery1.IsEmpty) or (MyQuery1.FieldByName('jeton').AsString > IntToStr(Listbox1.Items.Count)) Then
Begin
MessageDlg('warning: you have not credit!', mtWarning,[mbOK],0)
End
Else
Begin
While not MyQuery1.Eof do
Begin
ListBox1.Items.Add(MyQuery1.Fields[1].AsString);
MyQuery1.Next;
end;
MyQuery1.Close;
End;