Имам ListBox, показващ всички записи за едно поле (first
) в база данни. Когато потребителите щракнат върху елемента ListBox, бих искал да се показва стойността за различно поле в db (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 показва оригиналното поле.
Не знам достатъчно за компонентите на SQLQuery и как те взаимодействат с основната база данни, за да знам какво се случва.
[P.S. Базата данни е sqlite3, ако това има значение, и използвам Lazarus, а не Delphi, ако това има значение.]
opened
, може да бъде иclosed
. - person Jerry Dodge   schedule 14.03.2015