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

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

Как открыть файл БД с нестандартным расширением? [D7, dBase, FoxPro]


LongUSB ©   (2008-08-22 11:42:00) 

Есть файл: *.20080101. Это переименованный файл *.dbf
Необходимо извлечь из него некоторые данные, при этом переименовывать файл нельзя. Знаю точно, что это возможно, но не знаю - как?


LongUSB   (2008-09-01 17:35:00) [1]

ну да. так всегда. что не спроси - ответ один: "...гоги тебе в помощь...".
ладна. тему можно закрывать.


DrPass   (2008-09-01 12:54:00) [2]

Возьми самопальный компонент TDBF, который без ограничений можно скачать на сайте www.google.com, и забудь об этой проблеме


LongUSB   (2008-09-01 10:18:00) [3]

Есть вариант.
Утилитка "DBFNavigator" - как раз делает то что мне нужно (не без того, о чем толковал Loginov Dmitry ©   (27.08.08 00:37) [13]). Она использует самопальный компонент AlxBASE. Если у кого есть - отправьте на E-mail! ПОЖАЛУЙСТА!


Loginov Dmitry   (2008-08-27 00:37:00) [4]

> Ну что? Так ни кто ни чего и не придумал?


А что тут еще можно придумать? Только копирование (с другим именем) или переименование. В модуле DBTables.pas реализована проверка по расширению, которая естественно накладывает свои ограничения (возможно такая же проверка есть и в самом ядре).
Еще в качестве варианта можно откажаться от TTable и TQuery и юзать компоненты от сторонных разработчиков, например простейший TDBF.


Курдль   (2008-08-26 16:06:00) [5]

Дарю идею.
Переведи в Pascal и юхай в цикле, передавая только путь и имя файла в aPathToDBF.

       private static bool FillContracts(ref DataSet aDs, String aPathToDBF)
       {
           string sql = String.Format(@"select...");
           try
           {
               String connectString = String.Format("Provider=VFPOLEDB;Data Source={0}", aPathToDBF);
               OleDbConnection mConnection = new OleDbConnection(connectString);
               mConnection.Open();
               OleDbDataAdapter mAdapter = new OleDbDataAdapter(sql, mConnection);
               mAdapter.Fill(aDs.CONTRACTS);
               return true;
           }
           catch (Exception er)
           {
               throw new Exception("Запрос к таблице договоров из папки\n" + aPathToDBF + "\nвызвал ошибку:\n" + er.Message);
           }
       }


LongUSB   (2008-08-26 15:50:00) [6]

Ну что? Так ни кто ни чего и не придумал?


Труп Васи Доброго   (2008-08-22 21:17:00) [7]

Нет, в дизайн тайме БДЕ сама пытается приписать к данному имени DBF или DB, и, естественно кричит, что таблица "с:\ааа.45433.dbf" не существует.
Присваивать имя в рантайме не пробовал, честно - лень.


Правильный$Вася   (2008-08-22 18:38:00) [8]


> ...и нет ни каких алиасов - просто - куча файлов

алиас - необязателен для БДЕ


clickmaker   (2008-08-22 16:16:00) [9]

а БДЕ не пофиг, какое расширение?


Евгений Р.   (2008-08-22 16:12:00) [10]


>  [2]

ну так чем не подходит?


LongUSB   (2008-08-22 15:54:00) [11]

...и нет ни каких алиасов - просто - куча файлов


LongUSB   (2008-08-22 15:52:00) [12]

БлинаМуха! Не издевайтесь надо мной! Это не я придумал! Я всего лишь подстраиваюсь под то, что есть!

Подробнее: ...
Всего этих файлов обрабатывать надо очень много (>= 1500). Сейчас процесс получения инфо реализован по средством переименования, НО ЭТО ЖЕ ТУПО!!!
и долго, и копировать  - ТОЖЕ ТУПО И ДОЛГО!!!

Может кто-нибудь толком, конкретно на примере показать "Как открыть файл БД с нестандартным расширением?"


Anatoly Podgoretsky   (2008-08-22 12:16:00) [13]

> LongUSB  (22.08.2008 11:42:00)  [0]

Кстати, что за странная СУБД - dbf, не знаю таких.
Или ты тот очередной пионер, который гордо заявляет dbf


Anatoly Podgoretsky   (2008-08-22 12:14:00) [14]

> LongUSB  (22.08.2008 11:42:00)  [0]

А что и копировать тоже нельзя, я уж молчу указать в строке подключения/имени таблицы
БДЕ поддерживает копирования всей фамилии.


Евгений Р.   (2008-08-22 12:01:00) [15]

ну если sql-запрос, то имя таблицы писать в кавычках
свойство RequeriLive=true;
select *
from "c:\temp\123.456"

думаю и tTable должен поднять


Smile   (2008-08-22 11:54:00) [16]

при этом переименовывать файл нельзя
Ну если переименовать файл не позволяет совесть, можно попробовать скопировать его с расширением DBF, а затем открыть стандартными средствами


Наверх

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