Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Таблицы db, dbf [D7, WinXP]


Прохожев М ©   (2006-09-28 10:20:00) 

Добрый день! Подскажите пожалуйста как получить все поля таблицы ?

Пример: в таблице (tblBase) есть 4 поля (Fio,Tel,adress,id)
мне необходимо получить все 4 поля и присвоить их к переменным.
...Заранее Благодарю.


ASoft   (2006-09-29 06:30:00) [1]


> >Table.Filter := Table.Filter + ' and ... ';
>
> Так делать не надо ни в коем случае.
>

ну, наверное, просто фильтрация по составному условию, без Table.Filter +?


MsGuns   (2006-09-28 13:47:00) [2]

>Прохожев М   (28.09.06 10:30) [2]
>Это я знаю, мне просто нужно получить поля а не значения. Таблица может быть любой и полей может быть сколько угодно. В данном случае мы знаем что в таблице 4 поля и знаем имена полей. А мне нужно сделать то же самое с незнакомой таблицей

Есть два принципиально разных подхода:

1.
- "Попросить" у самой таблицы, используя простейший запрос типа
  Select * from table where 1<>1, "завернутую" в любую "датасетную" обертку (TQuery, TADOQuery, TADODataSet...),
- полученную в результате коллекции TDataSet.Fields/TDataSet.FieldDefs
использовать в нужных целях

2.
"Попросить" у "хозяина" таблицы, не беспокоя собственно таблицу: для локальных БД "хозяином" выступает "концентратор" обмена данными типа TDataBase(BDE), TADOConnection(ADO), TIBConnection(IBX)..., для серверных - запросы к метаданным (для разных серверов и поддерживаемых ими стандартов SQL синтаксис разный)

>clickmaker ©   (28.09.06 10:51) [9]
>Table.Filter := Table.Filter + ' and ... ';

Так делать не надо ни в коем случае.


Прохожев М   (2006-09-28 10:58:00) [3]

2 clickmaker

Спасибо большое!


clickmaker   (2006-09-28 10:51:00) [4]

Table.Filter := Table.Filter + ' and ... ';


Прохожев М   (2006-09-28 10:50:00) [5]

Мастера, еще один вопрос по таблицам.  

Можно ли отфильтравать таблицу несколько раз и не отменять предыдущие фильтрации?


Прохожев М   (2006-09-28 10:41:00) [6]

Всем спасибо, вы мне очень помогли и извините за тупые вопросы.


clickmaker   (2006-09-28 10:39:00) [7]


> [5] Прохожев М   (28.09.06 10:36)

это еще зачем? имя нужно? так это Fields[i].FieldName


Прохожев М   (2006-09-28 10:36:00) [8]

Подскажите как переобразовать TField в String ?


ЮЮ   (2006-09-28 10:34:00) [9]


> А мне нужно сделать то же самое с незнакомой таблицей.
>

а как же тогда запасешься необходимым количество переменных нужного типа?
TDataSet.Fields[Index] - это уже и есть "массив" значений полей текущей записи набора данных. Зачем ещё какие-то перемнные и зачем туда чего-то засовывать???


Elen   (2006-09-28 10:33:00) [10]


> Прохожев М

Table1.Fields.Fields... - тебе в помошь, добрый человек. Там есть и количество и номер и имя полей


Прохожев М   (2006-09-28 10:30:00) [11]

Это я знаю, мне просто нужно получить поля а не значения. Таблица может быть любой и полей может быть сколько угодно. В данном случае мы знаем что в таблице 4 поля и знаем имена полей. А мне нужно сделать то же самое с незнакомой таблицей.


Elen   (2006-09-28 10:28:00) [12]


> Прохожев М

получать
var:=Table1.FieldByName('FIO').As...
var:=Table1.FieldByName('Tel').As...
var:=Table1.FieldByName('Adres').As...
var:=Table1.FieldByName('Id').As...
передавать
Table1.FieldByName('FIO').As...:=var
Table1.FieldByName('Tel').As...:=var
Table1.FieldByName('Adres').As...:=var
Тable1.FieldByName('Id').As...:=var


Наверх

Титульная страница Поиск, карта сайта Написать письмо