Я подключаюсь к .dbf, используя ODBC в Delphi, используя FireDAC. Я установил соединение ODBC, dBase 5.0, используя 32-разрядный драйвер Driver do Microsoft dBase (.dbf)
.
В моей IDE (Rad Studio 10.1 Berlin) я настроил соединение ODBC в качестве источника данных. Строка подключения ODBCAdvanced
— это DefaultDir=%s;DriverId=533;MaxBufferSize=2048;PageTimeout=5
, где %s
— правильный каталог.
Мне удалось скопировать структуру таблицы в базу данных SQLite с помощью TFields (примерно следующий код).
FieldNames := TStringList.Create;
PDOXTable.GetFieldNames(FieldNames);
FieldNames.Delimiter := ';';
FieldList := TList<TField>.Create;
PDOXTable.GetFieldList(FieldList, FieldNames.DelimitedText);
TempTable := TFDTable.Create(nil);
TempTable.Connection := TempConn;
TempTable.TableName := DataTable.TableName;
for I := 0 to FieldList.Count - 1 do TempTable.Fields.Add(FieldList.Items[I]);
TempTable.CreateTable(true, [tpTable, tpTriggers, tpIndexes]);
Однако типы данных разные, и у меня нет первичных ключей, условий notnull или 'dflt_value', которые я получил, когда вручную экспортировал те же самые таблицы с помощью приложения Exportizer (http://www.vlsoftware.net/exportizer/), который, хотя и имеет клиент командной строки, я не уверен, Смогу связать с моим приложением.
Каков разумный способ скопировать таблицу из парадокса .dbf в SQLite, сохранив при этом как можно больше типов данных и параметров?
" / / ", and an unassigned Char(5) the default value of
`. - person Ken White   schedule 24.02.2017TFDBatchMove
не требует предварительно созданных таблиц. Достаточно оставитьpoCreateDest
включенным в свойствоOptions
. - person Victoria   schedule 16.06.2017