![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с DBF [D4, D5, D6, dBase, FoxPro, Paradox]
Ericman © (2002-10-17 09:16:00)Как брать DBF файлы из разных директорий? (Без BDE)
sniknik (2002-10-17 16:16:00) [1]не получалось возможно потому что свойство компонента ADODataset (квери) ParamCheck стоит в True. и тогда при попытке записать запрос в CommandText например
select * from C:\FKEYS.DBF
все после : (\FKEYS.DBF) будет интерпретироватся как параметр.
кстати это не только в десигн действует чтобы выполнять такие запросы (с : но без параметров) ParamCheck надо отключать!
Vlad2 я ответил.
Vlad2 (2002-10-17 15:39:00) [2]> sniknik
Да, да, да. Никак у меня не получалось динамически менять размещение dbf файлов, если connectionString назначать в designTime. А почему так, никто не знает.
sniknik ! Я Вам там письмо послал.
sniknik (2002-10-17 15:29:00) [3]Vlad2 (17.10.02 15:21)
Все эти присваивания, за исключением connectionString, выполняются во время разработки, визуально.
все верно но и connectionString не обязательно в рантайме присваивать можно и "визуально" в компоненте TADOConnection.
Vlad2 тут скорее имеет ввиду что тебе придетсятак делать чтобы путь менять, изза того что Driver Microsoft Visual FoxPro не умеет в другие места смотреть.
Vlad2 (2002-10-17 15:21:00) [4]У 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:00) [5]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 точно неплохая штучка, и исходники есть можно поправить "под себя". (правил только индексы для клипера несовпадало построение)
Vovchik_A (2002-10-17 15:03:00) [6]Halcyon-ом недавно пользовался. Без БДЕ все чудесно пашет
ericman (2002-10-17 15:00:00) [7]Что-то я опять не понял. Открыли мы таблицу TableDbf.Open. А где используется выше приведенный запрос?
По функции OPENROWSET() нигде не могу найти помощь.
Не делаю через Advantage потому, что не хочется зависеть от сторонних разработчиков.
Vlad2 (2002-10-17 13:56:00) [8]> 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 и т.д.
perov (2002-10-17 13:26:00) [9]для дбф формата есть библиотеки прямого доступа, например Advantage, Halcyon (не требует никаких dll)
Ericman (2002-10-17 12:05:00) [10]а пример какой-нибудь можно?
Vlad2 (2002-10-17 09:55:00) [11]можно через 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 09:48:00) [12]Через ADO пробовал
делал такой запрос: "SELECT * FROM d:\dbf\predpr.dbf"
не выходит.
_lex_ (2002-10-17 09:30:00) [13]может ADO компоненты помогут ?