Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

Работа с DBF   Найти похожие ветки 

 
Ericman   (2002-10-17 09:16) [0]

Как брать DBF файлы из разных директорий? (Без BDE)


 
_lex_   (2002-10-17 09:30) [1]

может ADO компоненты помогут ?


 
Ericman   (2002-10-17 09:48) [2]

Через ADO пробовал
делал такой запрос: "SELECT * FROM d:\dbf\predpr.dbf"
не выходит.


 
Vlad2   (2002-10-17 09:55) [3]

можно через DSN:
SELECT *
FROM OPENROWSET("MSDASQL",
"External VFP"; "sa"; "",
"SELECT * FROM anyTable")
здесь External VFP - имя DSN

а можно указать параметры явно
SELECT * from
OPENROWSET("MSDASQL",
"Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=E:\Travel\External;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Russian;Null=No;Deleted=Yes;",
"SELECT * FROM anyTable")

в обоих случаях anyTable - имя dbf файла


 
Ericman   (2002-10-17 12:05) [4]

а пример какой-нибудь можно?


 
perov ©   (2002-10-17 13:26) [5]

для дбф формата есть библиотеки прямого доступа, например Advantage, Halcyon (не требует никаких dll)


 
Vlad2   (2002-10-17 13:56) [6]

> Ericman
извини за паузу, меня здесь опять отвлекли. Нужно на клиенте сформировать строку для ADOConnectionDbf.ConnectionString.
ADOConnectionDbf: TADOConnection
Например, так:
ADOConnectionDbf.ConnectionString :=
"Provider=MSDASQL.1;"+
"Persist Security Info=True;"+
"Driver={Microsoft Visual FoxPro Driver};" +
"Exclusive=No;SourceType=DBF;" +
"SourceDB=" + initialCatalog;

ADOTableDbf.TableName := tableDbfName;

Здесь initialCatalog и tableDbfName соответственно путь и имя dbf файла, которые можно получить от OpenDialog. Проверено для win2000 с mdac2.5

Далее выполняешь ADOTableDbf.Open и т.д.


 
ericman   (2002-10-17 15:00) [7]

Что-то я опять не понял. Открыли мы таблицу TableDbf.Open. А где используется выше приведенный запрос?
По функции OPENROWSET() нигде не могу найти помощь.

Не делаю через Advantage потому, что не хочется зависеть от сторонних разработчиков.


 
Vovchik_A   (2002-10-17 15:03) [8]

Halcyon-ом недавно пользовался. Без БДЕ все чудесно пашет


 
Vlad2   (2002-10-17 15:21) [9]

У ADOTableDbf есть свойство ADOTableDbf.Connection. Нужно:
ADOConnectionDbf.ConnectionString := "...";
ADOTableDbf.TableName := tableDbfName;
ADOTableDbf.Connection := ADOConnectionDbf;
DataSourseDbf.DataSet := ADOTableDbf;
DBGrid.Datasourse := DataSourseDbf;
Все эти присваивания, за исключением connectionString, выполняются во время разработки, визуально.
А про OPENROWSET() забудь, это я не сразу понял вопрос.


 
sniknik ©   (2002-10-17 15:21) [10]

OPENROWSET() это из MSSQL, не ищи.
через ADO, сторка
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;Persist Security Info=False
возможны запросы
SELECT * FROM 1SACCS //это с Data Source=D:\1SACCS.DBF возьмет
SELECT * FROM D:\Test\CARDRATE.DBF
SELECT * FROM C:\FKEYS.DBF
(Driver={Microsoft Visual FoxPro} так похоже не умеет)

Halcyon точно неплохая штучка, и исходники есть можно поправить "под себя". (правил только индексы для клипера несовпадало построение)


 
sniknik ©   (2002-10-17 15:29) [11]

Vlad2 (17.10.02 15:21)
Все эти присваивания, за исключением connectionString, выполняются во время разработки, визуально.

все верно но и connectionString не обязательно в рантайме присваивать можно и "визуально" в компоненте TADOConnection.

Vlad2 тут скорее имеет ввиду что тебе придется так делать чтобы путь менять, изза того что Driver Microsoft Visual FoxPro не умеет в другие места смотреть.


 
Vlad2   (2002-10-17 15:39) [12]

> sniknik
Да, да, да. Никак у меня не получалось динамически менять размещение dbf файлов, если connectionString назначать в designTime. А почему так, никто не знает.
sniknik ! Я Вам там письмо послал.


 
sniknik ©   (2002-10-17 16:16) [13]

не получалось возможно потому что свойство компонента ADODataset (квери) ParamCheck стоит в True. и тогда при попытке записать запрос в CommandText например
select * from C:\FKEYS.DBF
все после : (\FKEYS.DBF) будет интерпретироватся как параметр.
кстати это не только в десигн действует чтобы выполнять такие запросы (с : но без параметров) ParamCheck надо отключать!

Vlad2 я ответил.



Страницы: 1 вся ветка

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-21366
Ренат
2002-10-17 12:16
2002.11.07
Две базы в одном запросе


1-21614
Пиноккио
2002-10-23 22:31
2002.11.07
Использование Canvas.PainTo


1-21644
dimonf
2002-10-27 15:56
2002.11.07
Извлечение информации из файлов Word, Exel.


4-21858
d-coder
2002-09-24 03:12
2002.11.07
Так знает кто-нибудь ответ?????


3-21399
Korwin
2002-10-18 09:43
2002.11.07
InterBase господа - тормозим