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

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

Помогите c ADO [D7, dBase, FoxPro, Paradox]


nika_ufc ©   (2003-11-02 00:17:00) 

Добрый вечер Мастера.
Помогите c ADO, а если нет способа помочь меня, хоть скажите что это не решенная проблема и вы сами не знаете как это зделать, а то уже помучился я :( .
я хочу с помощью TADOQuery дастать все физические поля таблицы, то есть все экземпляры TFieldDefs, а не TFields.
когда я хотел с помощью TQuery дастать все поля таблицы, я обрашался к этому методу:

Query1.FieldDefs.Update;
Query1.FieldDefs.GetItemNames(ListBox1.Items);

сейчас я вынужден работать с ADOQuery и у меня такая конструкция:

Query1.FieldDefs.Update;
Query1.FieldDefs.GetItemNames(ListBox1.Items);

или такая (делает одно и тоже):

for i:=0 to ADOQuery1.FieldDefList.Count-1 do
ListBox1.Items.Add(ADOQuery1.FieldDefList.FieldDefs[i].DisplayName);

но беда в том что, что я не пробовал, не смог этим методом(и другими методами тоже, например ADODataSet1.Fielddefs.GetFieldNames(ListBox1.Items)) достать имя поля типа Blob. например при отктие файла animals.dbf из директорий: C:\Program Files\Common Files\Borland Shared\Data (для остальных типов всё ок). как это сделать?

может все получится, если как то зделать ovverride этого(GetFieldNames или GetItemNames) метода? но я немножка пакапался и выяснил, что обе и TQuery и TADOQuery наследуют этот метод (GetFieldNames) от общего предка TDataSet. если это так (и это точно так), тогда дело в ADO(с DLL-ми все о.к.), потаму что Database Desktop показивает поля Blob без проблем.
как мне бить? и не забудьте этого пожалуйста:
Помогите c этим, а если нет способа помочь меня, хоть скажите что это не решенная проблема и вы сами не знаете как это зделать, а то уже помучился я.
заранее спасибо.


app   (2003-11-02 14:55:00) [1]

Оформлять тему сообщения


sniknik   (2003-11-02 13:00:00) [2]

не не получается, некоторые типы не видит (проверял Graphic в таблице biolife.DB), причем те же которые не видит access.

GetItemNames получает имена полей через ConnectionObject.OpenSchema а это "Provides direct accessto the ADO connection object" т.е. уровень ниже некуда и тем не менее...

перекинь свои рисунки в поля типа OLE и все будет видется (ну или пользуйся BDE), перекинуть не проблема если не полуться пиши.


sniknik   (2003-11-02 02:20:00) [3]

> может все получится, если как то зделать ovverride этого(GetFieldNames или GetItemNames) метода?
вряд ли. делал так(ovverride через получание схемы) и вроде бы блоб парадоксной таблици не видел (не помню точно), если только на более глубоком "уровне", но попробуй сделать импорт или линк в сам access если там оно будет то возможно если нет то ... возможно (скорее всего) но очень трудно.

завтра может попробую проверить, скажу точно.


Наверх

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