Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ADO и GetFieldNams
|
|||
|---|---|---|---|
|
#18+
Добрый вечер Мастера. Помогите 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 .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 без проблем(в смысле показивает само поле). GetItemNames получает имена полей через ConnectionObject.OpenSchema а это "Provides direct access to the ADO connection object" т.е. уровень ниже некуда. Все это мне нужно потому, что мое приложение должно открыть файли типа Access, Excel, DBase, Paradox и Comma delimated Files (т.е. файли типа txt или csv). BDE я не использую потому, что не хочу ставить их на клиентские машины. если вы мне предложите другую технологию, подход я буду весма благодарен. как мне бить? и не забудьте этого пожалуйста: Помогите c этим, а если нет способа помочь меня, хоть скажите что это не решенная проблема и вы сами не знаете как это зделать, а то уже помучился я. заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 18:52 |
|
||
|
ADO и GetFieldNams
|
|||
|---|---|---|---|
|
#18+
автор писал:Все это мне нужно потому, что мое приложение должно открыть файли типа Access, Excel, DBase, Paradox и Comma delimated Files (т.е. файли типа txt или csv). Я так и не понял - для чего? Чего должна делать программа то? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 19:10 |
|
||
|
ADO и GetFieldNams
|
|||
|---|---|---|---|
|
#18+
Может попробовать через Recordset ? Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 19:46 |
|
||
|
ADO и GetFieldNams
|
|||
|---|---|---|---|
|
#18+
>>>>tygra >>>>Я так и не понял - для чего? Чего должна делать программа то? Я пишу View/Editor. >>>>ZrenBy >>>Может попробовать через Recordset ? >>> for n:=1 to ADOQuery1.Recordset.Fields.Count do begin Memo1.Lines.Add(ADOQuery1.RecordSet.Fields[n-1].Name+' | '+IntToStr(ADOQuery1.RecordSet.Fields[n-1].Type_)); end; выпадает ошибка: 'Access violation at address 004AAA37 in module project1.exe. Read of address 00000000'. process stoped.... и т.д. что делать? уже никаких надежд нет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 20:20 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2116101]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 344ms |

| 0 / 0 |
