|
|
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
Проконсультировался с разными людьми по этому поводу. Говорят, что нет такого метода(функции), поэтому необходимо создать свою собственную процедуру для отображения поля таблицы в ListBox'е. Решил сделать так: Написать SQL запрос такого вида: SELECT count(*) from tablename В итоге в таблице должен быть один элемент, который отображает количество строк в поле. Т.е. узнать сколько будет линий в ListBox'е. Но понятия не имею как обратиться к этому элементу или выделить его. Буду рад совету по этому поводу. А так же буду рад услышать разные идеи по выводу поля таблицы базы данных в компонет ListBox или DBListBox. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 14:10 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
Ничего не понял. Нужно вывести в листбоксы все поля таблицы? А чем не устраивает TDataset->FieldCount в сочетании с TDataset->Fields->Fields[n]->FieldName? или я неправильно понял? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 14:44 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
vessi Ничего не понял. Нужно вывести в листбоксы все поля таблицы? А чем не устраивает TDataset->FieldCount в сочетании с TDataset->Fields->Fields[n]->FieldName? или я неправильно понял? Posted via ActualForum NNTP Server 1.3 Нужно вывести содержимое одного поля. Например была такая таблица: Температура Давление 10 760 20 750 15 770 В итоге я хочу сделать, чтобы каждая запись была в отдельной линии(line), т.е. ListBox будет выглядеть так: 10 20 15 А что делают эти функции? Не могли бы объяснить? Или написать пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 14:55 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
Если данные из листбокса должны попадать в поле другой таблицы - тогда используйте DBLookupListBox. FieldCount - возвращает количество полей в датасете Fields->Fields[n] - дает доступ к объекту поля таблицы по номеру n FieldName - соответственно стринг с названием поля. Листбокс ваш можно заполнить весьма просто - если в другую таблицу значение писать не нужно. Привожу код. Table1 - объект вашей таблицы. Fields[0] - ссылается на первое поле таблицы. Соответственно, листбокс заполняется из значений первого поля. Table1->First(); for (int i=0;i<Table1->RecordCount;i++) { ListBox1->Items->Add(Table1->Fields-Fields[0]->AsString); } вроде все. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 15:12 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
Table1->First(); for (int i=0;i<Table1->RecordCount;i++) { ListBox1->Items->Add(Table1->Fields->Fields ->AsString); } Вставил такой код. Цикл не проходит полностью.Table1->Fields->Fields[0] вставляется в ListBox1. остальные - нет. Более того, вылетает ошибка, связанная с try.. catch. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 15:46 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
void __fastcall TForm1::BitBtn1Click(TObject *Sender) { IBTable1->First(); for (int i=0;i<IBTable1->RecordCount;i++) { ListBox1->Items->Add(IBTable1->Fields->Fields[1]->AsString); IBTable1->Next(); } } ну это для примера реально работающий код. Да, кстати, Next() я забыл поставить в предыдущем тексте. Впрочем, и так, вроде бы, понятно, что таблицу нужно перелистывать на следующую запись. Эксцепшн может выпадать из-за неактивности датасета, на который вы ссылаетесь. Проще говоря, проверьте, в вашей таблице Active равен true? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 16:01 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
Всё. Спасибо большое :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 16:40 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
авторvoid __fastcall TForm1::BitBtn1Click(TObject *Sender) { IBTable1->First(); for (int i=0;i<IBTable1->RecordCount;i++) { ListBox1->Items->Add(IBTable1->Fields->Fields[1]->AsString); IBTable1->Next(); } } вариант работать будет но не советую, если у тя будет много записев то юзвер должен будет ждать пока не закончиться твой цикл! поэтому советую исползывать DBContrtols и подключать его на датасорс который будет подключен на датасет и который содержит такой запрос! Код: plaintext ---- www.hramin.jino-net.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2006, 12:26 |
|
||
|
Вывод в ListBox или DBListBox поля таблицы базы данных.
|
|||
|---|---|---|---|
|
#18+
кстати да, еще одно решение. впрочем, проблема с тормозами для первого варианта снимается вызовом Application->ProcessMessages(); в теле цикла. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 09:41 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34170697&tid=2029897]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 481ms |

| 0 / 0 |
