![]() |
|
Модераторы: skyboy |
![]()
|
|
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Если в файле вывода присутствуют пробелы, то функция не работает. Кавычки не помогают.
|
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Можно ли как-нибудь обойти эту проблему?
|
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
||||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Подсовываю я в mysqldump - полный путь, который выбирает пользователь. Сейчас я не даю ему задать путь с пробелами, но это некрасиво. Есть ведь много папок с пробелами, думаю у каждого.
|
|||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
zav74
Попробуй сконвертировать в короткие имена типа
замени на
Добавлено через 2 минуты и 53 секунды
Функция для конвертации |
||||||
|
|||||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
В принципе, как вариант можно попробовать-меньше придется ругаться о замене пути. Но, наверно, полностью не получится - ведь может и короткое имя иметь пробелы. Но, если другого способа не будет-то этот тоже поможет.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Если не ошибаюсь у него как раз проблема с длинными именами а не с проблами.
На случай если ошибаюсь Как вариант можно создавать файл всегда в одном темповом каталоге (например C:\Windows\Temp) а после переносить туда, куда попросил юзверь. Добавлено через 6 минут и 10 секунд Кстати, я попробовал.. Нормально пашет, в чем собственно проблема? Покажите скрипт. Как запускаете? |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Да нет при тестировании длина была небольшая, изменения(с работающим каталогом) были только в одном пробеле. О создании в другом каталоге и переносе тоже подумал. Как то раз, когда у меня на диске C было мало места и какая то программка не дала что-то сделать-мне это помню очень не понравилось. Но возможно другого пути не будет.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
||||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
azesmcar
А что работает? mysqldump? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
zav74
Естественно
Это сообщение отредактировал(а) azesmcar - 27.4.2009, 12:12 |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
а вот это из MFC-шного приложения не работает и mysql для разархивирования тоже не работает при наличии пробела |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
zav74
Неудивительно, учитывая сколько тут ошибок |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
БЕЗ ПРОБЕЛА ВСЕ РАБОТАЕТ!!!
А именно
http://www.mysql.ru/docs/man/mysqldump.html - здесь вот описан синтаксис и вроде как я ничего не нарушил. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
zav74
О чем речь? этот код даже не откомпилируется. Сейчас скину рабочий вариант..погоди Добавлено @ 16:46 В синтаксисе команды - нет..в синтаксисе С++ нарушено все что только можно нарушить в данном случае Добавлено @ 16:57
Это сообщение отредактировал(а) azesmcar - 27.4.2009, 16:57 |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Спасибо - попробую эту функцию, у меня естественно было написано, не так-эту я строку из дэбагэра скопировал. А в коде она собирается из многих частей и выглядит-
иначе конечно не скомпилится |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Ну а мне откуда знать откуда она скопирована..я вижу код, предполагаю что это скопировано из сорсов |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Спасибо. Вроде что-то работает. Только выполняется в фоновом режиме, а хотелось бы модально. Но это уже частности. Наверно, завтра добью эту проблему.
Добавлено через 3 минуты и 55 секунд Спасибо. Вроде что-то работает. Только выполняется в фоновом режиме, а хотелось бы модально. Но это уже частности. Наверно, завтра добью эту проблему. |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
ShellExecuteA - все таки не подходит. Не отследить окончание процесса, а это важно. А также не запускается mysql.exe с пробелами(а как же без разархивации) - так что надо что-то сложное городить.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
zav74
CreateProcess, WaitForSingleObject |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
CreateProcess, WaitForSingleObject - вроде работает с mysqldump, но не получается разархивировать с mysql.exe
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Не понял что это значит. |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
С помощью mysqldump я получил архив базы данных. Теперь надо иметь возможность этот архив назад залить на сервер. Для этого использую mysql.exe. Так вот не получается с пробелами это сделать, точнее с помощью CreateProcess вообще не выполняется, а с функцией system получается, но только без пробелов.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
zav74
Код в студию |
|||
|
||||
| zav74 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
так не работает, причем первые две строчки пробовал по-разному и кавычки тоже
так работает
так не работает, и кавычки не помогают |
||||||
|
|||||||
| Gwire |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 216 Регистрация: 7.8.2007 Где: Николаев Репутация: 1 Всего: 4 |
Я не спец в познаниях о функции system. Но Но вот это работает из cmd нормально rar > "C:\temp\12 34 56.txt" Как говорится кавычки "хаваются". Попробуй продублировать кавычки. И кстати не видел не одного примера, где с кавычками не работает.
|
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Нет, так не работает. Думаю, здесь проблема не system, а mysqldump. Если убрать кавычки, то работает. |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Ошибся, так работает. В данной конструкции надо использовать кавычки один раз. Я раньше пробовал - \"C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe\", в этом случае \"D:\\notspacedir\\my_db.sql\" не прокатывало, а если в первой части кострукции кавычки убрать, то вроде работает. Добавлено через 38 секунд конструкции кавычки убрать |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Разумеется
как это будет работать? это не консоль в конце концов. Теги перенаправления тут не могут работать. Передавайте имя файла по параметру. Если в mysql.exe такого нет, используйте mysqlimport |
||||
|
|||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Сейчас возникла еще одна проблема, ведь если на клиенте не стоит MySQL, то и программ mysqldump.exe и mysql.exe у него нет. Выходит, что он не сможет архивировать БД. Идеально было бы архивировать через встроенные функции, но я что-то таких не нашел.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
В папке mysql\lib, mysql\headers есть все что нужно..я не пойму что вам надо сделать конкретно? Сообщите полностью задачу, язык программирования, среду разработки, операционную систему. |
|||
|
||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
У меня есть комплекс программ, работающих с базой. Предполагается, что будет один сервер и много клиентов(классическая схема). На каждом компе будет одинаковый набор программ. Так называемый администратор сервера здесь не предполагается, плюс ко всему предполагается, что у пользователей будет низкий уровень знаний. Таким образом они не будут знать как функционирует сервер, клиенты и т.д. У них будет четкая и простая инструкция по установке и использованию. Большинство необходимых функций(создание новой БД, создание пользователя, назначение привилегий) я сделал через свой интерфейс, максимально упростив его. Также здесь сделаны архивация и разархивация БД, которая включает в себя создание файла со скриптом БД, копирование пользовательских файлов, изменение каких то путей. Вот и получается, что необходимо, чтобы архив своей базы данных мог создать пользователь с любого компа, а не только с сервера. А также разархивировать с любого компа(жаль только, что он будет обладать правами администратора, но это пока не критично). При использовании mysqldump.exe и mysql.exe это не получится. Комплекс написан в VC++ 6.0. Использую libmysql.dll, на клиенте других(еще временно использую MyODBC) модулей MySQL нет.
|
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
zav74
Экспорт/импорт и создание таблиц можно реализовать с помощью функций из libmysql.dll Программа которая будет работать с базой данных при запуске может проверить, и если не найдет свою базу - предложить пользователю создать ее. Если серверного приложения нет, придется это делать клиентскому..либо создать инсталятор для серверной части, т.е. для базы данных. Просто скачать MySQL, распаковать его, настроить базу и снова запаковать, либо создать инсталятор..и распространять именно эту версию со своей программой. |
|||
|
||||
| zav74 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Нет, у каждого пользователя может быть разная БД, причем БД могут иметь разные структуры(пока два типа).
А каких?
Можно наверно и так. Но это дополнительные модули и т.д., этого хотелось бы избежать. Здесь идеально именно с помощью функций из libmysql.dll, либо с помощью функций какой то определенной библиотеки. |
||||||
|
|||||||
| zav74 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Бросил mysqldump.exe и mysql.exe в папку с остальными библиотеками и вроде все работает через system с пробелами тоже. Наверно, вопрос решен. Всем спасибо!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |