-
Есть файл: *.20080101. Это переименованный файл *.dbf
Необходимо извлечь из него некоторые данные, при этом переименовывать файл нельзя. Знаю точно, что это возможно, но не знаю - как?
-
при этом переименовывать файл нельзя
Ну если переименовать файл не позволяет совесть, можно попробовать скопировать его с расширением DBF, а затем открыть стандартными средствами
-
ну если sql-запрос, то имя таблицы писать в кавычках
свойство RequeriLive=true;
select *
from "c:\temp\123.456"
думаю и tTable должен поднять
-
> LongUSB (22.08.2008 11:42:00) [0]
А что и копировать тоже нельзя, я уж молчу указать в строке подключения/имени таблицы
БДЕ поддерживает копирования всей фамилии.
-
> LongUSB (22.08.2008 11:42:00) [0]
Кстати, что за странная СУБД - dbf, не знаю таких.
Или ты тот очередной пионер, который гордо заявляет dbf
-
БлинаМуха! Не издевайтесь надо мной! Это не я придумал! Я всего лишь подстраиваюсь под то, что есть!
Подробнее: ...
Всего этих файлов обрабатывать надо очень много (>= 1500). Сейчас процесс получения инфо реализован по средством переименования, НО ЭТО ЖЕ ТУПО!!!
и долго, и копировать - ТОЖЕ ТУПО И ДОЛГО!!!
Может кто-нибудь толком, конкретно на примере показать "Как открыть файл БД с нестандартным расширением?"
-
...и нет ни каких алиасов - просто - куча файлов
-
> [2]
ну так чем не подходит?
-
а БДЕ не пофиг, какое расширение?
-
> ...и нет ни каких алиасов - просто - куча файлов
алиас - необязателен для БДЕ
-
Нет, в дизайн тайме БДЕ сама пытается приписать к данному имени DBF или DB, и, естественно кричит, что таблица "с:\ааа.45433.dbf" не существует.
Присваивать имя в рантайме не пробовал, честно - лень.
-
Ну что? Так ни кто ни чего и не придумал?
-
Дарю идею.
Переведи в Pascal и юхай в цикле, передавая только путь и имя файла в aPathToDBF.
private static bool FillContracts(ref DataSet aDs, String aPathToDBF)
", aPathToDBF);
OleDbConnection mConnection = new OleDbConnection(connectString);
mConnection.Open();
OleDbDataAdapter mAdapter = new OleDbDataAdapter(sql, mConnection);
mAdapter.Fill(aDs.CONTRACTS);
return true;
}
catch (Exception er)
}
-
> Ну что? Так ни кто ни чего и не придумал?
А что тут еще можно придумать? Только копирование (с другим именем) или переименование. В модуле DBTables.pas реализована проверка по расширению, которая естественно накладывает свои ограничения (возможно такая же проверка есть и в самом ядре).
Еще в качестве варианта можно откажаться от TTable и TQuery и юзать компоненты от сторонных разработчиков, например простейший TDBF.
-
Есть вариант.
Утилитка "DBFNavigator" - как раз делает то что мне нужно (не без того, о чем толковал Loginov Dmitry © (27.08.08 00:37) [13]). Она использует самопальный компонент AlxBASE. Если у кого есть - отправьте на E-mail! ПОЖАЛУЙСТА!
-
Возьми самопальный компонент TDBF, который без ограничений можно скачать на сайте www.google.com, и забудь об этой проблеме
-
ну да. так всегда. что не спроси - ответ один: "...гоги тебе в помощь...".
ладна. тему можно закрывать.