|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Коллеги, не получается. Разрыл, что программно можно выставить параметры "ODBC" и "{Microsoft Visual Foxpro driver}". Чуть позднее скину проект, чтобы говорить по существу. Может есть готовый рецепт, как доктор прописал? И что скажете про TDBF и VKDBF? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2021, 19:35 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah, а что тебе надо-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2021, 20:37 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
ъъъъъ, Для начала хочется просто считать данные из DBF и заполнить ими ListBox. Я приложу свой код, разумеется (по фото геморрой не лечат). Считаю правильно/современно - через FireDAC. Если я не прав - аргументируйте. Я из фокса пришел, разберусь. Но без местных гуру будет долго парадигму переиначивать. Спецы из других языков быстро учатся, это нужно им... ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 00:03 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Для начала надо разобраться какой именно у тебя DBF. Ибо под этим расширением скрываются несколько форматов. Раз файл пришёл из фокса, то да, ODBC драйвер для FoxPro это вполне сносный путь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 00:23 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Да, коллеги (и сам) работаю со стандартным dBase 4. Есть интерес (пока просто заполнить ЛистБокс) работать под FireDAC. Будут приседания под работу с DBF - послушаю советы, вроде люди VK DBF советуют. Давайте завтра скину, что есть - посоветуете, что я делаю не так. Мне не зазорно в чем-то новом ковыряться и задавать тупые вопросы. Кто-то куда-то мигрирует, все непросто. Но осилим, мы из упрямых, но слушающих. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 00:55 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah Для начала хочется просто считать данные из DBF и заполнить ими ListBox. ... Считаю правильно/современно - через FireDAC. Примеров работы с dbf столько, что ты качать устанешь. С чем лучше работать - наверное, никто уже не скажет, но 99.99%, что с dbf через FireDac никто не работал, ибо FireDac появился тогда, когда все dbf устарели. Что тебе делать - зависит от деталей. Если у тебя .dbf совместимы с прежними форматами, то одно, а если с новыми FoxPro - то совсем другое. Если тебе нужно просто импортироваться из dbf в другую СУБД - можно проще, а если работать с dbf дальше - то "проще" не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 00:59 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Через АДО не хочется, я потом свои обертки буду рисовать. Муторно. Советы (аргументированные) послушаю. Все что интересно. В Гугл играю, подробности найду. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 01:00 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 01:10 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Дмитрий, я очень внимателен, знаю Вы (ты) сильны в Делфях. Пните в правильное направление, я там, глядишь, разберемся. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 01:23 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
ъъъъъ, Да, конечно. Просто поторопился и не знал, как тут ПРАВИЛЬНО оформляется кодес. Спасибо, я учту. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 01:25 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Не нашел, как исправить сообщение. Про теги кода понял. Сейчас пишу - теги вижу. А как отредактировать? Может мало сообщений? Зареган давно так-то... Чего не знаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 01:29 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shahколлеги (и сам) работаю со стандартным dBase 4. Обычный TTable тебе в руки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 12:38 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Наверное. :) Хотелось бы FireDAC допинать, все же более продвинутая технология. Читаешь техфорумы - то одно хвалят, то другое... Каждый выбирает свой путь, это понятно. Хочется, чтобы было без ненужного мегатонного кодеса, без привязок а-ля BDE, масштабируемо и пр. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 12:48 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shahвсе же более продвинутая технология. Нет. В BDE используются потерянные технологии, которые FireDAC не умеет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 12:53 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah, DBF? Что? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2021, 15:52 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Для прямого доступа к DBF, наверное, проще поискать какой-нибудь компонент (из тех, что еще поддерживаются). Вот, например (сам не проверял): Component TDBF to access DBF table without BDE (D1..D7,D2005-2007/2009..XE8) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 02:42 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
основная проблема с ДБФ - совместимость индексов. Несмотря на то, что сам формат более-менее одинаков, индексы везде разные и могут быть несовместимы даже в пределах одной технологии, коих много: Фокс/Pro, ВижуалФокс, Клиппер, xBase, Harbour, DBF2/3 и еще куча экзотических вещей. Помницца, в свое время работал с клиппером. Была целая проблема подключить индексы. При этом на чтение все работало ОК, но при записи индекс крашился. Использовал Apollo. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 10:50 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
А что, удалить и пересоздать индексы нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 11:07 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
раньше использовал TDBF, но у них вроде поддержка закончилась, перешел на AdoTable. Проблем нет ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 11:32 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
X11 А что, удалить и пересоздать индексы нельзя? Вроде как "из дельфи" сие позволяет только Microsoft OLE DB Provider for Visual Fox. Чтобы "пересозать", нужно знать структуру удаляемого индекса, что не всегда известно. Индексы бывают созданные на базе вычисляемых выражений, без исходной среды, где реализованы фукции, используемые в выражениях - никак. Ну, при импорте данных из дбф в свою СУБД на индексы обычно можно плюнуть слюной, а если человек собирается продолжать использовать дбф, но из дельфи - это грустно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 12:45 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
L_argo основная проблема с ДБФ - совместимость индексов. Там есть и не основные - формат различается, и не все совместимо, даже для просто передачи данных. Я сталкивался с разным указанием codepage и кажись с разными ограничениями на размер полей, в частности который CHAR. Вроде как не может быть более 200, но опять же, не во всех версиях наверное. Ну и всякие там MEMO-поля которые вообще в отдельных файлах пишутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 14:07 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
ъъъъъ Вроде как "из дельфи" сие позволяет только Microsoft OLE DB Provider for Visual Fox. А Paradox/BDE? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 16:39 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah, В FireDac есть поддержка Advantage Database Server. Скачав локального клиента можно работать и с dbf. Либо вообще использовать родные компоненты - ADS. Скачать их можно с сайта SAP или https://%5Dhttps://devzone.advantagedatabase.com%5B/url]https://devzone.advantagedatabase.com] (Правда не всегда работает) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 18:17 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah Да, коллеги (и сам) работаю со стандартным dBase 4. TTable (BDE). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 08:25 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
sg729, Да вот хочется без BDE - его потом всем клиентам ставить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 08:34 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah, Несмотря на то, что с удовольствием пользуюсь FireDAC для MS SQL, Oracle и Firebird, для импорта-экспорта в DBF использую VKDBF, в т.ч. для разноформатных DBF, поступающих со стороны. Работает все как часы, чего и вам желаю.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 10:21 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah sg729, Да вот хочется без BDE - его потом всем клиентам ставить. Если dbf будет открываться только на чтение, можно попробовать какие-нибудь сторонние компоненты: https://www.sql.ru/forum/787327/posovetuyte-horoshuu-biblioteku-dlya-raboty-s-dbf-faylami Очень давно использовал DegisyData - работало, но помедленнее чем через BDE. Вообще для файловой базы данных BDE работает быстрее любых современных решений (провайдеров, библиотек), в этом плане никто пока BDE не переплюнул (ИМХО). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 11:15 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
13.07.2021 10:21, Vlad F пишет: > Несмотря на то, что с удовольствием пользуюсь FireDAC для MS SQL, Oracle и Firebird, > для импорта-экспорта в DBF использую VKDBF, в т.ч. для разноформатных DBF, > поступающих со стороны. Работает все как часы, чего и вам желаю.)) если только для импорта, то можно тупо как из типизированного файла тащить. он же такстовый! © Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 11:41 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah sg729, Да вот хочется без BDE - его потом всем клиентам ставить. BDE работает без установки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 12:25 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Мимопроходящий, Наверное можно, умеючи. Но в том же импорте, перед открытием DBF, средствами VKDBF можно, к примеру, сразу нужные фильтры на DS наложить. Чтобы не тащить лишнего, - красота!)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 12:34 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
как помнится у бде с дбф было много тёрок и скандалов... то индекса нет, то индекс не такой... а еще какие-то флажки и признаки в заголовке дбф он слишком жестко обрабатывает в общем, работать работает, но крови попьёт для Д7 был Халсион... но 20 лет прошло ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 14:49 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
andreymxу бде с дбф было много тёрок и скандалов... то индекса нет, то индекс не такой... Потому что, как уже неоднократно сказано выше, под маркой "DBF" выступает туева хуча различных форматов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 15:10 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Решил остановиться на FireDAC. Но застрял на этой ошибке: [FireDAC][Phys][ODBC][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified. Что я делаю не так? P.S. BDE не предлагать. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2021, 22:29 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
FDConnection1.Params.Values['ODBCDriver'] := 'Microsoft dBase Driver (*.dbf)'; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2021, 22:49 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Dmitry Arefiev, Спасибо, Дмитрий! В design-time кнопка "Test" отрабатывает успешно, а старте EXE-файла выдается сообщение, что ядро Microsoft Jet не может найти DBF. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2021, 05:17 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Дай угадаю: собираешь проект 64 бита?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2021, 12:13 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Да обычный, 32-бита.какую-то настройку еще подкрутить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2021, 12:27 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah, В сторону UniDAC не смотрел ? DBF разных форматов читать он точно умеет без установки дополнительных драйверов. Правда, он платный. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2021, 16:01 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
AK-Shah В design-time кнопка "Test" отрабатывает успешно, а старте EXE-файла выдается сообщение, что ядро Microsoft Jet не может найти DBF. >>> не может найти DBF <<< а вот этот путь Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2021, 18:03 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
P.S. и ещё, может ошибаюсь, но разве базу не надо регистрировать в настройках ODBC в панели управления Windows? и далее уже указывать её по алиасу ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2021, 18:14 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
20.07.2021 18:14, Кроик Семён пишет: > и ещё, может ошибаюсь, но разве базу не надо регистрировать в настройках ODBC в панели управления Windows? это не обязательно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2021, 18:20 |
|
FireDAC - подключить DBF
|
|||
---|---|---|---|
#18+
В 100500 раз, пожалуйста: http://docwiki.embarcadero.com/RADStudio/Sydney/en/DBMS_Environment_Reports_(FireDAC) Если все дается в дизайн-тайм, то: http://docwiki.embarcadero.com/RADStudio/Sydney/en/DBMS_Environment_Reports_(FireDAC)#Using_the_TFDConnection_Design_Time_Editor Если что-то в ран-тайм, то: http://docwiki.embarcadero.com/RADStudio/Sydney/en/DBMS_Environment_Reports_(FireDAC)#Using_Delphi_Code ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2021, 23:16 |
|
|
start [/forum/topic.php?all=1&fid=58&tid=2037169]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
others: | 267ms |
total: | 535ms |
0 / 0 |