![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите 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 если там оно будет то возможно если нет то ... возможно (скорее всего) но очень трудно.
завтра может попробую проверить, скажу точно.