Topic: Импорт и экспорт данных

Уважаемый Дмитрий.
1. Как привязать другую базу данных посредством скрипта? Помню что вроде Attach abc.db as Test. Дайте пожалуйста правильный скрипт.
2. Можете сделать простой пример проекта для импорта и экспорта данных? Т.е. все используют одну и ту же программу на разных компютерах. Я например делаю экспорт, в этом случае происходит копия базы данных. Отнесу флешкой эту копию а Админ делает импорт данных. Если можно также с учетом того чтобы не дублировались записи если они имелись раньше. Спс.

Re: Импорт и экспорт данных

1.

SQLExecute('ATTACH DATABASE ''abc.db'' as ''TEST''');

Но использовать привязанную базу данных можете только с помощью SQL, пример

SELECT TEST.person.firstname, TEST.person.lastname FROM TEST.person

2. Чуть позже постараюсь сделать для вас пример

Dmitry.

Re: Импорт и экспорт данных

Уважаемый Админ.
Я бы хотел вам напомнить про пример проекта импорт и экспорт данных, который указывался на втором посте. Спс. заранее.

Re: Импорт и экспорт данных

Сделал для вас проект с примером, скрипт является универсальным, вам просто нужно указать наименование столбцов для импорта или экспорта в параметрах процедур.


Насчет дублирования записей, вам нужно решить, по каким именно признакам будет определяться, что это дубликат записи, например создавать для каждой записи уникальный идентификатор, либо определять дубликат по сочетанию полей, например имя, фамиля, год рождения.
http://myvisualdatabase.com/forum/viewt … ?pid=21566

Dmitry.

Re: Импорт и экспорт данных

Огромное спасибо. Отличный пример.
На счет дублирования записей, можете сделать на примере имени и фамилии?

Re: Импорт и экспорт данных

jonibek wrote:

Огромное спасибо. Отличный пример.
На счет дублирования записей, можете сделать на примере имени и фамилии?

Доработал пример, теперь можно указывать поля, по которым нужно проверять дубликаты
http://myvisualdatabase.com/forum/viewt … 566#p21566

Dmitry.

Re: Импорт и экспорт данных

Спасибо большое.
На вашем примере при экспорте автоматически файл сохраняется по умолчанию в папку с программой. А как сделать чтобы выбрать указанную папку, т.е. высвечивает окно для выбора папки для сохранения файла при экспорте и такой же подход при импорте.

Re: Импорт и экспорт данных

procedure Form1_bExport_OnClick (Sender: string; var Cancel: boolean);
var
    SaveDialog: TSaveDialog;
begin
    SaveDialog := TSaveDialog.Create(Form1);
    if SaveDialog.Execute then Export('SELECT lastname, firstname, salary, dateofbirth, isSmoke, comment FROM employees', SaveDialog.FileName);
    SaveDialog.Free;
end;

procedure Form1_bImport_OnClick (Sender: string; var Cancel: boolean);
var
     OpenDialog: TOpenDialog;
begin
     OpenDialog := TOpenDialog.Create(Form1);
     OpenDialog.InitialDir := ExtractFileDir(Application.Exename);

     if OpenDialog.Execute then Import('employees', 'lastname,firstname,salary,dateofbirth,isSmoke,comment', OpenDialog.FileName);

     OpenDialog.Free;
end;

procedure Form1_bImportCheckDup_OnClick (Sender: string; var Cancel: boolean);
var
     OpenDialog: TOpenDialog;
begin
     OpenDialog := TOpenDialog.Create(Form1);
     OpenDialog.InitialDir := ExtractFileDir(Application.Exename);
     if OpenDialog.Execute then Import('employees', 'lastname,firstname,salary,dateofbirth,isSmoke,comment', OpenDialog.FileName, 'lastname,firstname');
     OpenDialog.Free;
end;

Проект с примером:

Post's attachments

Attachment icon Import-Export and dialogs.zip 13.28 kb, 424 downloads since 2017-10-10 

Dmitry.

9 (edited by sysscrew 2017-10-07 04:02:11)

Re: Импорт и экспорт данных

При запуске проекта в аттаче при нажатии на кнопку import& check duplicate вылетает ошибка...
https://i.imgur.com/3YWDcW6.png

Re: Импорт и экспорт данных

sysscrew
Исправил ошибку, скачайте пожалуйста проект с примером снова.

Dmitry.