Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2011, 21:28   #1
Samkoff
Пользователь
 
Регистрация: 04.03.2011
Сообщений: 18
Стрелка DBF + Delphi

Вобщем возник такой вопрос: У меня есть DBF файл, как мне внути Delphi просмотреть его структуру (Называние полей и их тип).
Samkoff вне форума Ответить с цитированием
Старый 13.05.2011, 22:31   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё просто. вопрос только в том, через что вы собираетесь открывать DBF файл? BDE, ADO, компонент TDBF или что-то другое?!
возможно даже напрямую прочитать имена полей из файла, открыв его как бинарный (самый хакерский вариант )

примерно так:
Код:
      for i:=0 to q1.FieldCount-1 do
      begin
          Имя поля: q1.Fields[i].FieldName
          Тип поля: q1.Fields[i].DataType
....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.05.2011, 10:34   #3
Art111000
 
Регистрация: 24.11.2009
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
Имя поля: q1.Fields[i].FieldName
Тип поля: q1.Fields[i].DataType
Как связать query с dbf, путь к базе указать можно (DatabaseName), а как объяснить ему с какой таблицей я работаю?

Последний раз редактировалось Art111000; 15.05.2011 в 11:34.
Art111000 вне форума Ответить с цитированием
Старый 15.05.2011, 11:59   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А в самом запросе не пробовали? SELECT * FROM Table1 или даже SELECT * FROM Table1.dbf
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.05.2011, 12:13   #5
Art111000
 
Регистрация: 24.11.2009
Сообщений: 9
По умолчанию

У меня просто задача узнать количество полей в dbf-таблице и имена полей)
Тут в примере вроде как через TQuery это делается, а как именно сделать до конца не понятно...
Art111000 вне форума Ответить с цитированием
Старый 15.05.2011, 12:26   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Все равно нужно активизировать TQuery, пусть он даже по условию вернет 0 записей, не важно, зато смотрите пост 2 - есть перечень полей и их типов, а для символьных и размерность. Другое дело, что таким способом поле NUMERIC(8,2) в TQuery будет скорее всего просто Float. Чтобы точно определить типы полей dbf ищите какой-нибудь специализированный компонент для dbf или напрямую, как во 2-ом посте предлагалось, читайте файл. А для использования TQuery бросьте его на форму, укажите какой провайдер, настройте его командную строку, введите текст запроса, активизируйте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.05.2011 в 12:41.
Аватар вне форума Ответить с цитированием
Старый 15.05.2011, 15:33   #7
Art111000
 
Регистрация: 24.11.2009
Сообщений: 9
По умолчанию

Еще вопрос, почти по теме, на форме Query, DataSource и DBGrid.

Код:
DBGrid1.DataSource:=DataSource1;
DataSource1.DataSet:=Query1;
Query1.DatabaseName:=Dir;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From '+FileName);
Query1.Open;
При выполнении этого кода выдает ошибку. Чего не хватает? Может я какие-нибудь компоненты неправильно связал?

Последний раз редактировалось Art111000; 15.05.2011 в 17:03.
Art111000 вне форума Ответить с цитированием
Старый 15.05.2011, 16:32   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Похоже вы пытаетесь через BDE обратиться к dbf. А BDE установлен? Что-то мне подсказывает что это по незнанию. Лучше использовать ADOQuery. И в вашем коде если уж Q1 используется для обращения к таблице, то и DataSource нацельте на него
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.05.2011, 17:05   #9
Art111000
 
Регистрация: 24.11.2009
Сообщений: 9
По умолчанию

Да, использую BDE, query поправил, но не заработало, сейчас попробую через ADO... Посмотрим что я нахимичу.
Art111000 вне форума Ответить с цитированием
Старый 15.05.2011, 17:12   #10
Art111000
 
Регистрация: 24.11.2009
Сообщений: 9
По умолчанию

Аватар, не могли бы вы подсказать как примерно будет выглядеть подключение через ADO? Там ADOConnection нужно привязывать каким то путем?
Art111000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами dbf в Delphi. santaIsAbsent БД в Delphi 10 02.09.2010 10:16
БД dbf + Delphi (оплата сразу) netruxa Фриланс 5 21.04.2010 10:08
Из 1С 8.1 перегрузить данные в базу на Delphi (база dbf). Natasha Pavlovskay Помощь студентам 0 17.07.2009 20:45
из dbf в mssql через delphi kyc0k БД в Delphi 1 22.12.2008 15:25
сохранение результата выборки из DBF файла в DBF файл с такой же структурой таблицы GazimagomedovM БД в Delphi 5 06.11.2007 17:58