Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mysqldump не работает, если в имени файла есть пробел 
V
    Опции темы
zav74
Дата 23.4.2009, 11:47 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Если в файле вывода присутствуют пробелы, то функция не работает. Кавычки не помогают.
PM MAIL   Вверх
zav74
Дата 27.4.2009, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Можно ли как-нибудь обойти эту проблему?
PM MAIL   Вверх
DimW
Дата 27.4.2009, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(zav74 @  27.4.2009,  09:05 Найти цитируемый пост)
Можно ли как-нибудь обойти эту проблему? 

удали пробелы.
PM MAIL ICQ   Вверх
zav74
Дата 27.4.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Подсовываю я в mysqldump - полный путь, который выбирает пользователь. Сейчас я не даю ему задать путь с пробелами, но это некрасиво. Есть ведь много папок с пробелами, думаю у каждого. 
PM MAIL   Вверх
azesmcar
Дата 27.4.2009, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



zav74

Попробуй сконвертировать в короткие имена типа
Цитата

C:\Program Files\MySQL\data

замени на
Цитата

C:\PROGRA~1\MySQL\data


Добавлено через 2 минуты и 53 секунды
Цитата

DWORD WINAPI GetShortPathName(
  __in          LPCTSTR lpszLongPath,
  __out         LPTSTR lpszShortPath,
  __in          DWORD cchBuffer
);


Функция для конвертации
PM   Вверх
zav74
Дата 27.4.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



В принципе, как вариант можно попробовать-меньше придется ругаться о замене пути. Но, наверно, полностью не получится - ведь может и короткое имя иметь пробелы. Но, если другого способа не будет-то этот тоже поможет.
PM MAIL   Вверх
azesmcar
Дата 27.4.2009, 11:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Если не ошибаюсь у него как раз проблема с длинными именами а не с проблами.
На случай если ошибаюсь smile

Как вариант можно создавать файл всегда в одном темповом каталоге (например C:\Windows\Temp) а после переносить туда, куда попросил юзверь.

Добавлено через 6 минут и 10 секунд
Кстати, я попробовал..
Нормально пашет, в чем собственно проблема?
Покажите скрипт. Как запускаете?
PM   Вверх
zav74
Дата 27.4.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Да нет при тестировании длина была небольшая, изменения(с работающим каталогом) были только в одном пробеле. О создании в другом каталоге и переносе тоже подумал. Как то раз, когда у меня на диске C было мало места и какая то программка не дала что-то сделать-мне это помню очень не понравилось. Но возможно другого пути не будет.
PM MAIL   Вверх
azesmcar
Дата 27.4.2009, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



zav74

У меня нормально работает. Плюс я предложил другой вариант решения

Цитата(azesmcar @  27.4.2009,  11:09 Найти цитируемый пост)
Как вариант можно создавать файл всегда в одном темповом каталоге (например C:\Windows\Temp) а после переносить туда, куда попросил юзверь


PM   Вверх
zav74
Дата 27.4.2009, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



azesmcar 
Цитата

У меня нормально работает.


А что работает? mysqldump?
PM MAIL   Вверх
azesmcar
Дата 27.4.2009, 12:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



zav74

Естественно smile по вашему в этой теме я бы писал что у меня нормально работает стабилизатор от телевизора Радуга 701/Д?
Цитата

C:\Mysql\Bin> mysqldump test -r "c:\downloads\folder with space\test with space.db"
C:\Mysql\Bin> 
C:\Mysql\Bin> dir "c:\downloads\folder with space\"
 Volume in drive C has no label.
 Volume Serial Number is 7C11-F2BD

 Directory of c:\downloads\folder with space

27.04.2009  13:00    <DIR>          .
27.04.2009  13:00    <DIR>          ..
27.04.2009  13:00             1 055 test with space.db
               1 File(s)          1 055 bytes
               2 Dir(s)  194 724 937 728 bytes free

C:\Mysql\Bin>


Это сообщение отредактировал(а) azesmcar - 27.4.2009, 12:12
PM   Вверх
zav74
Дата 27.4.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



Код

system(""C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump" -R -h localhost -P 3306 -u root -p111 --databases my_db > D:\space dir\my_db.sql");

а вот это из MFC-шного приложения не работает и mysql для разархивирования тоже не работает при наличии пробела
PM MAIL   Вверх
azesmcar
Дата 27.4.2009, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



zav74

Неудивительно, учитывая сколько тут ошибок
PM   Вверх
zav74
Дата 27.4.2009, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 19.7.2006

Репутация: нет
Всего: нет



БЕЗ ПРОБЕЛА ВСЕ РАБОТАЕТ!!! 
А именно
Код

system(""C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump" -R -h localhost -P 3306 -u root -p111 --databases my_db > D:\notspacedir\my_db.sql");

http://www.mysql.ru/docs/man/mysqldump.html - здесь вот описан синтаксис и вроде как я ничего не нарушил.
PM MAIL   Вверх
azesmcar
Дата 27.4.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



zav74

О чем речь? этот код даже не откомпилируется. Сейчас скину рабочий вариант..погоди

Добавлено @ 16:46
В синтаксисе команды - нет..в синтаксисе С++ нарушено все что только можно нарушить в данном случае smile

Добавлено @ 16:57
Код

    ShellExecuteA(    NULL,
                    "open",
                    "C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe",
                    "-h localhost -P 3306 -u root -p111 --databases my_db -r \"D:\\notspacedir\\my_db.sql\"", "", SW_HIDE);



Это сообщение отредактировал(а) azesmcar - 27.4.2009, 16:57
PM   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.