Bug 2427

Summary: Разработать консольный вариант конвертора баз
Product: SELTA@Etersoft Reporter: Шильников Андрей <shan>
Component: ОбщееAssignee: Станислав Коробейников <stas>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P4 CC: baraka, lav, stas
Version: 1.0.5   
Target Milestone: версия 1.0.5   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 2637    

Description Шильников Андрей 2008-09-12 19:00:12 MSD
Нужно сделать консольный вариант конвертора БД

Например, для того чтобы делать выгрузку в автоматическом режиме (http://rt.etersoft.ru/Ticket/Display.html?id=8140), а также многое другое. Клиенты не раз спрашивали про это.
Comment 1 Vitaly Lipatov 2008-09-12 19:57:46 MSD
$ cvs checkout selta
$ cd gui

Надо сделать консольный инструмент по загрузке / выгрузке дампа (пример эксплуатации можно посмотреть в заявке)
Параметры командной строки - максимально похоже на mysqldump --help
Программа должна быть под Windows.

я сделал скелет программы в каталоге cmd
Comment 2 Шильников Андрей 2008-09-15 12:30:47 MSD
Еще одно дополнение. Включение и выключение программы из командной строки.
Цитата:
"Я вспомнил ещё про один немаловажный ИМХО нюанс - необходимость "запуска" 
 SELTA (подмены ODBC драйвера) для работы конвертера. Если запуск SELTA 
 требуется в обязательном порядке, то для "пакетного" режима работы 
 конвертера потребуется также "пакетное" включение/отключение самой SELTA ? "
Comment 3 Шильников Андрей 2008-10-15 19:35:29 MSD
Стас, отпишись по итогам баги. Вроде бы что-то делали и даже тестировали.
Comment 4 Станислав Коробейников 2008-10-16 17:29:46 MSD
Сделал. В msi не добавлял. 
Надо что бы кто нибудь посмотрел. Хотя бы то, что я там в хелпе по английски написал. Если все устраивает, можно добавлять в msi. 
Все есть в cvs. 


Comment 5 Vitaly Lipatov 2008-10-19 13:31:40 MSD
1. В cvs ничего нет.
2. Ждать, чтобы кто-то посмотрел, не надо, надо было сразу добавить.
3. Я добавил в msi.
Comment 6 Шильников Андрей 2008-10-21 15:57:07 MSD
1) как работает, все ли работоспособно?
2) Если уже есть в сборке, необходимо написать краткий мануал по использования.
Стас, вот здесь можно написать wiki.office.etersoft.ru желательно с примерами.
а дальше уже добавим на общую вики

После этого закрываем ее.
Comment 7 Станислав Коробейников 2008-10-22 12:43:57 MSD
Мануал. http://wiki/SELTA/cmd
Comment 8 Станислав Коробейников 2008-10-22 12:51:11 MSD
У меня тут два замечания. 
1. При всем этом не проверяется лицензия 
2. При запуске selta может появится окошечко с рассказом, что будет скопирована после перезагрузки. И вопрос да/нет. Это как-то противоречит консольности. 

1. делается совсем легко. Не знаю, надо ли?
2. Надо подумать как. Можно изменить существующий код, что бы он не всегда показывал окошечко, но тогда надо ответ по умолчанию или еще один параметр или и то и другое. Я правда, когда писал не рассчитывал на необязательные параметры. Но можно добавить. Или можно отловить окно и нажать за юзера. Но это как-то не правильно. Можно еще так и оставить. 
  
Comment 9 Шильников Андрей 2008-10-22 13:23:17 MSD
(In reply to comment #8)
> У меня тут два замечания. 
> 1. При всем этом не проверяется лицензия 
Командная строка - это утилита, поэтому чтобы не было конфликтов с лицензией со стороны ПО, вначале надо запускать основной окно Сельты, проходить проверку в GUI. Командная строка же должна отслеживать это. Если проверка лицензии в GUI не была пройдена, то и работать она не должна.
> 2. При запуске selta может появится окошечко с
> рассказом, что будет скопирована после
> перезагрузки. И вопрос да/нет. Это как-то
> противоречит консольности. 
Пока я не считаю это критичным. Но если будут какие-то проблемы, то решить ее не сложно.

Comment 10 Станислав Коробейников 2008-10-22 15:31:16 MSD
Добавил проверку лицензий. Никаких окон не запускается. Просто проверяется лицензия.
Comment 11 Шильников Андрей 2008-10-22 16:21:51 MSD
Добавил твое описание на офиц.вики. Сделал ссылку с главной страницы продукта на вики http://wiki.etersoft.ru/SELTA  См. раздел Использование (правая колонка)
Comment 12 Vitaly Lipatov 2008-10-22 18:22:26 MSD
(In reply to comment #8)
> У меня тут два замечания. 
> 1. При всем этом не проверяется лицензия 
> 1. делается совсем легко. Не знаю, надо ли?
Не уверен что надо, но если сделано, пусть будет.

> 2. При запуске selta может появится окошечко с
> рассказом, что будет скопирована после
> перезагрузки. И вопрос да/нет. Это как-то
> противоречит консольности.
При линковке консольной программы не должно быть указаны
-lcomctl32 -lcomdlg32
Ну и конечно никаких таких проверок делать не нужно, консольность предполагает, что человек знает, что делает.
Comment 13 Станислав Коробейников 2008-10-23 11:48:55 MSD
(In reply to comment #12)
> При линковке консольной программы не
> должно быть указаны
> -lcomctl32 -lcomdlg32
Тогда не работает. 

К Makefile в OBJECTS= 
я подключаю ../gui/Selta.o (я ведь использую функции из GUI). 
запуск,конвертация, проверка лицензий. 

Без этих параметров make ругается
../gui/Selta.o:Selta.cpp:(.text+0xf3c): undefined reference to `_InitCommonControls@0'
../gui/Selta.o:Selta.cpp:(.text+0x2d27): undefined reference to `_GetOpenFileNameA@4'
../gui/seltadiagn.o:seltadiagn.cpp:(.text+0xe0a): undefined reference to `_GetSaveFileNameA@4'
../gui/seltadiagn.o:seltadiagn.cpp:(.text+0x1058): undefined reference to `_GetSaveFileNameA@4'
../gui/converterdlg.o:converterdlg.cpp:(.text+0xd0c): undefined reference to `_GetOpenFileNameA@4'
../gui/dbinitdlg.o:dbinitdlg.cpp:(.text+0xd2e): undefined reference to `_GetSaveFileNameA@4'
  
Я этих функций не использую. 
Но как сделать, что бы прицеплялись только нужные функции я не знаю. 

> Ну и конечно никаких таких проверок делать
> не нужно, консольность предполагает, что
> человек знает, что делает.
Не понял. Каких проверок?

Comment 14 Станислав Коробейников 2009-01-13 18:00:18 MSK
Переношу все общие моменты в код в отдельную папочку SharedCode, попутно исправляю ошибки.  
Comment 15 Vitaly Lipatov 2014-09-11 18:41:40 MSK
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.