Содержимое поля БД поместить в строку!!!

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
BlackEric
Сообщения: 31
Зарегистрирован: 15 фев 2006, 08:43

Содержимое поля БД поместить в строку!!!

Сообщение BlackEric » 16 фев 2006, 17:40

Delphi 7, FireBird,IBX.
Нужно содержимое поля (из всех записей) БД поместить в string, TStrings или что-нибуль подобное.
Пытаюсь делать так
ComboBox1.Items.Values[' ']:=string(IBDataSet2.Fields.Fields[1].CurValue);

Выдает ошибку, что не может конвертировать null в string.

Как это сделать????

P.S. DBLookupComboBox не предлагать.
Последний раз редактировалось BlackEric 16 фев 2006, 17:41, всего редактировалось 1 раз.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 16 фев 2006, 17:41

проверять на null

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Содержимое поля БД поместить в строку!!!

Сообщение Dimitry Sibiryakov » 17 фев 2006, 08:03

BlackEric писал(а):Пытаюсь делать так
ComboBox1.Items.Values[' ']:=string(IBDataSet2.Fields.Fields[1].CurValue);
Ужас какой! RTFM AsString немедленно!
Ну заодно и про TStrings.Add().

BlackEric
Сообщения: 31
Зарегистрирован: 15 фев 2006, 08:43

Сообщение BlackEric » 17 фев 2006, 09:28

Если так, то я получаю только одну запись!
ComboBox1.Items.Add(IBDataSet2.FieldValues['surname']);

А если так, то 1 запись в таблице подгружается несколько раз
for i := 0 to IBDataSet2.RecordCount - 1 do
ComboBox1.Items.Add(IBDataSet2.FieldValues['surname']);

BlackEric
Сообщения: 31
Зарегистрирован: 15 фев 2006, 08:43

Сообщение BlackEric » 17 фев 2006, 10:11

Спасибо всем за помощь!!!

Работает оно таким образом

IBDataSet2.FetchAll;
for i := 0 to IBDataSet2.RecordCount - 1 do
begin
ComboBox1.Items.Add(IBDataSet2.FieldValues['surname']);
IBDataSet2.Next;
end;



Спасибо!!!!!

Ответить