У меня есть ListBox, показывающий все записи для одного поля (first
) в базе данных. Когда пользователи щелкают элемент ListBox, я бы хотел, чтобы отображалось значение для другого поля в базе данных (last
), той же записи. Мой код ListBox OnClick:
SQLQuery2.SQL.Text:='SELECT * FROM Names WHERE first= :FIRST';
SQLQuery2.Params.ParamByName('FIRST').AsString := ListBox1.Items[ListBox1.ItemIndex];
SQLQuery2.Open;
ShowMessage('You selected '+SQLQuery2.FieldByName('last').AsString);
Когда вы щелкаете элемент, ожидаемое поле появляется в MessageBox. Однако если затем щелкнуть другой элемент, ничего не изменится — в MessageBox отображается исходное поле.
Я недостаточно знаю о компонентах SQLQuery и о том, как они взаимодействуют с базовой базой данных, чтобы понять, что происходит.
[P.S. БД — это sqlite3, если это имеет значение, и я использую Lazarus, а не Delphi, если это имеет значение.]
opened
, может быть иclosed
. - person Jerry Dodge   schedule 14.03.2015