Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC - подключить DBF / 25 сообщений из 43, страница 1 из 2
10.07.2021, 19:35
    #40083167
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Коллеги, не получается. Разрыл, что программно можно выставить параметры "ODBC" и "{Microsoft Visual Foxpro driver}".

Чуть позднее скину проект, чтобы говорить по существу. Может есть готовый рецепт, как доктор прописал?

И что скажете про TDBF и VKDBF?
...
Рейтинг: 0 / 0
10.07.2021, 20:37
    #40083170
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
AK-Shah,

а что тебе надо-то?
...
Рейтинг: 0 / 0
11.07.2021, 00:03
    #40083180
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
ъъъъъ,


Для начала хочется просто считать данные из DBF и заполнить ими ListBox.
Я приложу свой код, разумеется (по фото геморрой не лечат).

Считаю правильно/современно - через FireDAC. Если я не прав - аргументируйте. Я из фокса пришел, разберусь. Но без местных гуру будет долго парадигму переиначивать. Спецы из других языков быстро учатся, это нужно им... ;)
...
Рейтинг: 0 / 0
11.07.2021, 00:23
    #40083184
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Для начала надо разобраться какой именно у тебя DBF. Ибо под этим расширением скрываются
несколько форматов. Раз файл пришёл из фокса, то да, ODBC драйвер для FoxPro это вполне
сносный путь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.07.2021, 00:55
    #40083187
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Dimitry Sibiryakov,

Да, коллеги (и сам) работаю со стандартным dBase 4. Есть интерес (пока просто заполнить ЛистБокс) работать под FireDAC. Будут приседания под работу с DBF - послушаю советы, вроде люди VK DBF советуют.

Давайте завтра скину, что есть - посоветуете, что я делаю не так. Мне не зазорно в чем-то новом ковыряться и задавать тупые вопросы. Кто-то куда-то мигрирует, все непросто. Но осилим, мы из упрямых, но слушающих.
...
Рейтинг: 0 / 0
11.07.2021, 00:59
    #40083188
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
AK-Shah
Для начала хочется просто считать данные из DBF и заполнить ими ListBox.
...
Считаю правильно/современно - через FireDAC.

Примеров работы с dbf столько, что ты качать устанешь.
С чем лучше работать - наверное, никто уже не скажет, но 99.99%, что с dbf через FireDac никто не работал, ибо FireDac появился тогда, когда все dbf устарели.

Что тебе делать - зависит от деталей. Если у тебя .dbf совместимы с прежними форматами, то одно, а если с новыми FoxPro - то совсем другое. Если тебе нужно просто импортироваться из dbf в другую СУБД - можно проще, а если работать с dbf дальше - то "проще" не получится.
...
Рейтинг: 0 / 0
11.07.2021, 01:00
    #40083189
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Через АДО не хочется, я потом свои обертки буду рисовать. Муторно.

Советы (аргументированные) послушаю. Все что интересно. В Гугл играю, подробности найду.
...
Рейтинг: 0 / 0
11.07.2021, 01:10
    #40083190
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
program Project1;

uses
Vcl.Forms,
Unit1 in 'Unit1.pas' {Form1};


{$R *.res}

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Form1.ReadKeySection();
Form1.FillListShizd();
Application.Run;

end.




unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages,
System.SysUtils, System.Variants, System.Classes, System.IniFiles,
Vcl.Controls, Vcl.StdCtrls, Vcl.Graphics, Vcl.Forms, Vcl.Dialogs, Vcl.ToolWin, Vcl.ComCtrls,
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf,
FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async,
FireDAC.Phys, FireDAC.VCLUI.Wait, FireDAC.Stan.Param, FireDAC.DatS,
FireDAC.DApt.Intf, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet,
FireDAC.Comp.Client, FireDAC.Phys.ODBC, FireDAC.Phys.MySQLDef,
FireDAC.Phys.MySQL, FireDAC.Phys.ODBCDef, FireDAC.Phys.ODBCBase ;
// Dbf in 'dbf.pas';


type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
ListBox2: TListBox;
StatusBar1: TStatusBar;
ToolBar1: TToolBar;
FDConnection1: TFDConnection;
FDTable1: TFDTable;
FDPhysODBCDriverLink1: TFDPhysODBCDriverLink;

procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FillListShizd;

private
{ Private declarations }

public
{ Public declarations }
procedure ReadKeySection;

end;

var
Form1: TForm1;
lcP1470SRV: String;
lcP1471SRV: String;
lcP1472SRV: String;



implementation

{$R *.dfm}
{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Îáðàáîòêà XML');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;




procedure TForm1.ReadKeySection();
var
oIni: TIniFile;
lcIniFileName: String;

begin
lcIniFileName := 'setup.ini';
oIni := TIniFile.Create( ExtractFilePath( Application.ExeName ) + lcIniFileName );

lcP1470SRV := oIni.ReadString('PATH_IN', 'P1470SRV', '');
lcP1471SRV := oIni.ReadString('PATH_IN', 'P1471SRV', '');
lcP1472SRV := oIni.ReadString('PATH_IN', 'P1472SRV', '');

ShowMessage(lcP1470SRV + ' ' + lcP1471SRV + ' ' + lcP1472SRV);
end;





procedure TForm1.FillListShizd();
var
oFDConn: TFDConnection;
begin

oFDConn := FDConnection1.Create(nil);
oFDConn.Params.Clear;
oFDConn.Params.Values['Login Prompt'] := 'False';
oFDConn.Params.Values['DriverID'] := 'ODBC';
oFDConn.Params.Values['ODBCDriver'] := '{Microsof Visual FoxPro Driver}';
//oFDConn.Params.Values['ODBCAdvanced'] := 'SourceDB=' + ExtractFilePath(lcP1470SRV) + ';SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine';
oFDConn.Params.Values['Database'] := ExtractFilePath(lcP1470SRV);
// FDConnection1.DriverName := 'Microsof Visual FoxPro Driver';
oFDConn.Connected := True;


FDTable1.Connection := FDConnection1;
FDTable1.TableName := ExtractFileName(lcP1470SRV);



// FDTable1.Active := True; '


FDTable1.Open;

while not FDTable1.Eof do
begin
ListBox1.Items.Add(FDTable1.FieldByName('SHIZD').AsString);
end;
FDTable1.Close;



// TFileP1470 := TDBF.Create(nil);
// TFileP1470.TableName := ExtractFileName(lcP1470SRV);
// TFileP1470.Open;

// while not TFileP1470.EOF do
// begin
// ListBox1.Items.Add(TFileP1470.FieldByName('SHIZD').AsString);
// TFileP1470.Next;
// end;
// TFileP1470.Close;

//TFileP1470 := TTable.Create(Application);
//table2.TableType := ttFoxPro; // cpdbf() = 1251
//TFileP1470.TableType := ttDBase;
//TFileP1470.DatabaseName := ExtractFilePath(lcP1470SRV);
//TFileP1470.TableName := ExtractFileName(lcP1470SRV);
//TFileP1470.Active := true;



//TFileP1470.First;
//while not TFileP1470.Eof do
// begin
// ListBox1.Items.Add(TFileP1470.Fields[1].AsString);
// TFileP1470.Next;
// end;
//TFileP1470.Close;



end;

end.
...
Рейтинг: 0 / 0
11.07.2021, 01:23
    #40083191
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
...
Рейтинг: 0 / 0
11.07.2021, 01:23
    #40083192
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Дмитрий, я очень внимателен, знаю Вы (ты) сильны в Делфях. Пните в правильное направление, я там, глядишь, разберемся. ;)
...
Рейтинг: 0 / 0
11.07.2021, 01:25
    #40083193
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
ъъъъъ,

Да, конечно. Просто поторопился и не знал, как тут ПРАВИЛЬНО оформляется кодес. Спасибо, я учту.
...
Рейтинг: 0 / 0
11.07.2021, 01:29
    #40083195
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Не нашел, как исправить сообщение. Про теги кода понял. Сейчас пишу - теги вижу. А как отредактировать? Может мало сообщений? Зареган давно так-то... Чего не знаю?
...
Рейтинг: 0 / 0
11.07.2021, 12:38
    #40083209
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
AK-Shahколлеги (и сам) работаю со стандартным dBase 4.

Обычный TTable тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.07.2021, 12:48
    #40083213
AK-Shah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Dimitry Sibiryakov,

Наверное. :)
Хотелось бы FireDAC допинать, все же более продвинутая технология. Читаешь техфорумы - то одно хвалят, то другое... Каждый выбирает свой путь, это понятно. Хочется, чтобы было без ненужного мегатонного кодеса, без привязок а-ля BDE, масштабируемо и пр.
...
Рейтинг: 0 / 0
11.07.2021, 12:53
    #40083215
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
AK-Shahвсе же более продвинутая технология.

Нет. В BDE используются потерянные технологии, которые FireDAC не умеет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.07.2021, 15:52
    #40083225
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
AK-Shah,

DBF? Что?
...
Рейтинг: 0 / 0
12.07.2021, 02:42
    #40083275
crossa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
Для прямого доступа к DBF, наверное, проще поискать какой-нибудь компонент (из тех, что еще поддерживаются). Вот, например (сам не проверял):
Component TDBF to access DBF table without BDE (D1..D7,D2005-2007/2009..XE8)
...
Рейтинг: 0 / 0
12.07.2021, 10:50
    #40083319
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
основная проблема с ДБФ - совместимость индексов.
Несмотря на то, что сам формат более-менее одинаков, индексы везде разные и могут быть несовместимы даже в пределах одной технологии, коих много: Фокс/Pro, ВижуалФокс, Клиппер, xBase, Harbour, DBF2/3 и еще куча экзотических вещей.

Помницца, в свое время работал с клиппером. Была целая проблема подключить индексы. При этом на чтение все работало ОК, но при записи индекс крашился. Использовал Apollo.
...
Рейтинг: 0 / 0
12.07.2021, 11:07
    #40083322
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
А что, удалить и пересоздать индексы нельзя?
...
Рейтинг: 0 / 0
12.07.2021, 11:32
    #40083325
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
раньше использовал TDBF, но у них вроде поддержка закончилась, перешел на AdoTable. Проблем нет
...
Рейтинг: 0 / 0
12.07.2021, 12:45
    #40083346
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
X11
А что, удалить и пересоздать индексы нельзя?

Вроде как "из дельфи" сие позволяет только Microsoft OLE DB Provider for Visual Fox. Чтобы "пересозать", нужно знать структуру удаляемого индекса, что не всегда известно. Индексы бывают созданные на базе вычисляемых выражений, без исходной среды, где реализованы фукции, используемые в выражениях - никак.
Ну, при импорте данных из дбф в свою СУБД на индексы обычно можно плюнуть слюной, а если человек собирается продолжать использовать дбф, но из дельфи - это грустно.
...
Рейтинг: 0 / 0
12.07.2021, 14:07
    #40083371
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
L_argo
основная проблема с ДБФ - совместимость индексов.

Там есть и не основные - формат различается, и не все совместимо, даже для просто передачи данных.
Я сталкивался с разным указанием codepage и кажись с разными ограничениями на размер полей, в частности который CHAR.
Вроде как не может быть более 200, но опять же, не во всех версиях наверное.
Ну и всякие там MEMO-поля которые вообще в отдельных файлах пишутся.
...
Рейтинг: 0 / 0
12.07.2021, 16:39
    #40083400
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
ъъъъъ
Вроде как "из дельфи" сие позволяет только Microsoft OLE DB Provider for Visual Fox.


А Paradox/BDE?
...
Рейтинг: 0 / 0
12.07.2021, 18:17
    #40083426
vkorshun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
AK-Shah,

В FireDac есть поддержка Advantage Database Server. Скачав локального клиента можно работать и с dbf. Либо вообще использовать родные компоненты - ADS. Скачать их можно с сайта SAP или https://%5Dhttps://devzone.advantagedatabase.com%5B/url]https://devzone.advantagedatabase.com] (Правда не всегда работает)
...
Рейтинг: 0 / 0
13.07.2021, 08:25
    #40083493
sg729
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC - подключить DBF
AK-Shah
Да, коллеги (и сам) работаю со стандартным dBase 4.

TTable (BDE).
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC - подключить DBF / 25 сообщений из 43, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]