IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Глупый вопрос по циклу и Listbox, помощь необходима
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 178
Пол: Мужской

Репутация: -  0  +


procedure TForm2.ListBox4Click(Sender: TObject);
var sDBItem1,sDBItem2,sDBItem3,sDBItem4,sDBItem5:string;
i,ia:integer;
begin

Memo1.Lines.Clear;

with ADOQuery1 do begin
SQL.Clear;
SQL.Add ('Select event_note,event_site,koeff_p1,koeff_n,koeff_p2 from bet');

Open;
First;
while not eof do



begin
sDBItem1 := String(FieldValues ['event_note']);
sDBItem2 := String(FieldValues ['event_site']);
sDBItem3 := String(FieldValues ['koeff_p1']);
sDBItem4 := String(FieldValues ['koeff_n']);
sDBItem5 := String(FieldValues ['koeff_p2']);
Memo1.lines.Add(sDBItem1);
Memo1.lines.Add(sDBItem2);
Memo1.lines.Add('Коэффициенты: '+ sDBItem3+' - '+sDBItem4+' - '+sDBItem5);
Next;
end;
end;
end;


В листбоксе несколько записей(строк) при нажатии на разные строки должна появляться разная информация в Мемо, которая берется из файла БД access, но сейчас выводится до конца файла всё, а мне надо чтобы выводились записи с номером как у листбокса, как сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Код
select * from bet
where id = listbox.itemIndex
?
или переходом на запись, или по записям по очереди, проверяя номер записи(RecNo) или ID или как ты определишь эту запись smile.gif

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 178
Пол: Мужской

Репутация: -  0  +


Точно, так и знал что легко, заклинило smile.gif
Только выдаёт что listbox4.itemIndex не имеет значение по умолчанию ....

Сообщение отредактировано: cooler -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Оно и не нужно. Когда кликаешь по ЛистБоксу, какой-то из элементов выделяется. Его номер - это и будет ItemIndex. Скорее всего, ты неправильно создал SQL-запрос.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 178
Пол: Мужской

Репутация: -  0  +


Все имена проверил
вот запрос
 SQL.Add ('select event_note,event_site,koeff_p1,koeff_n,koeff_p2 from bet where bet_id = listbox4.itemIndex');
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


SQL.Add ('select event_note,event_site,koeff_p1,koeff_n,koeff_p2 from bet where bet_id = ' +listbox4.itemIndex);
надо за апострофом писать значение smile.gif (если надо то приведи к строковому типу - inttostr)
можно через параметр
SQL.Add ('select event_note,event_site,koeff_p1,koeff_n,koeff_p2 from bet where bet_id = :pr1');
ADOQuery1.Parameters.ParamValues['pr1'] := listbox.itemindex
Пробуй так smile.gif

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Зависит от того, какой тип у поля bet_id... Если целочисленный - то:
SQL.Add ('select event_note,event_site,koeff_p1,koeff_n,koeff_p2 from bet where bet_id = ' +
IntToStr(listbox4.itemIndex));

, а если строковый - то
SQL.Add ('select event_note,event_site,koeff_p1,koeff_n,koeff_p2 from bet where bet_id = ' +
QuotedStr(IntToStr(listbox4.itemIndex)));
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 178
Пол: Мужской

Репутация: -  0  +


good.gif Спасибо
Ещё вопросик
Код
Form2.ADOQuery1.Edit;
Form2.ADOQuery1.insert;
Form2.ADOQuery1.FieldByName('event_name').Asstring := Edit1.Text;
Form2.ADOQuery1.FieldByName('bet_id').Asinteger := 5;         //<---------------
Form2.ADOQuery1.Post;

Записывается в БД, как сделать чтобы в bet_id записывалось значение, следующее после того что уже есть в БД
Например, 9 записей, и пишет 10, когда добавляет 10ую
Тоже как-то просто....

Сообщение отредактировано: cooler -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Если поле bet_id объявить в базе как AutoNumber, то это будет делаться автоматически
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


если юзаешь ms sql server, то в режиме редактирования таблицы на bet_id в свойствах ставишь identity specification - yes


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 1:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name