Перекидка баз MyDamp неполучается.
Re: Перекидка баз MyDamp неполучается.
Повторный экспорт принес желаемый результат, однако хочется знать, какие опции могли повлиять на результат, чтоб не повторилось в будующем?
Re: Перекидка баз MyDamp неполучается.
Пришлите пожалуйста пример демонстрирующий данную проблему на andreyz*devart*com . Также сообщите следующую информацию:
- точную версию MyDAC. Вы можете найти ее на закладке About редактора TMyConnection;
- точную версию MySQL сервера и клиента. Вы можете найти их на закладке Info редактора TMyConnection;
- точную версию Вашей IDE.
- точную версию MyDAC. Вы можете найти ее на закладке About редактора TMyConnection;
- точную версию MySQL сервера и клиента. Вы можете найти их на закладке Info редактора TMyConnection;
- точную версию Вашей IDE.
Re: Перекидка баз MyDamp неполучается.
MySql data access prof edition 7.6.11
mysql 5.5.15
Установлен и unidac prof 4.6.11
17.0.4723.55752
1. Что заметил, если на флэшке не хватает памяти, то при восстановлении появляются иероглифы ошибок не возникает.
2.При простое иде появляется ошибка 10053, со знаками ??????????????????????
3. Как только данные не будут сохраняться, и я разберусь, в чем причина я вам пришлю пример.
mysql 5.5.15
Установлен и unidac prof 4.6.11
17.0.4723.55752
1. Что заметил, если на флэшке не хватает памяти, то при восстановлении появляются иероглифы ошибок не возникает.
2.При простое иде появляется ошибка 10053, со знаками ??????????????????????
3. Как только данные не будут сохраняться, и я разберусь, в чем причина я вам пришлю пример.
Re: Перекидка баз MyDamp неполучается.
Сделал те же действия проблема и понял, что ошибка целиком в моей программе. Я забыл переключить бд на основную.
Спасибо, что помогли разобраться.
Спасибо, что помогли разобраться.
Re: Перекидка баз MyDamp неполучается.
Пожалуйста. Я рад что смог помочь. Пишите нам если возникнут дальнейшие вопросы по MyDAC.
Re: Перекидка баз MyDamp неполучается.
Здравствуйте.
Стало появляться исключение
Стало появляться исключение
First chance exception at $00625955. Exception class $C0000005 with message 'access violation at 0x00625955: read of address 0x00000000'. Process UchetBuilder.exe (1720)
Код: Выделить всё
{
if (OpenDialog1->Execute()) {
Form2->MyConnection2->Close();
Form2->MyConnection2->Options->UseUnicode = false; // перед дампом выключаем UseUnicode
Form2->MyConnection2->Options->Charset = "utf8"; // и устанавливаем Charset в utf8
Form2->MyConnection2->Open();
MyDump1->Connection = Form2->MyConnection2;
MyDump1->Connection->Close();
MyDump1->TableNames="";
AnsiString fn=OpenDialog1->FileName;
ProgressBar1->Position=0;
MyDump1->RestoreFromFile(fn);<<----------------Здесь ошибка
Form2->MyConnection2->Close();
Form2->MyConnection2->Options->UseUnicode = true; // перед дампом выключаем UseUnicode
Form2->MyConnection2->Options->Charset = "utf8"; // и устанавливаем Charset в utf8
Form2->MyConnection2->Open();
MyDump1->Connection = Form2->MyConnection2;
ProgressBar1->Position=0;
Re: Перекидка баз MyDamp неполучается.
Файл был поврежден.
Хочу обратить внимание, что mydump не выводит ошибки в след случаях.
1. Идет сохранение, диск переполнен.
2. Идет восстановление, в файле ерунда.
3. Ошибка чтения файла(поврежден)
Хотелось бы, чтоб выдавало соответствующее предупреждение.
Хочу обратить внимание, что mydump не выводит ошибки в след случаях.
1. Идет сохранение, диск переполнен.
2. Идет восстановление, в файле ерунда.
3. Ошибка чтения файла(поврежден)
Хотелось бы, чтоб выдавало соответствующее предупреждение.
-
- Devart Team
- Сообщения: 51
- Зарегистрирован: Пн 28 янв 2013 11:54
Re: Перекидка баз MyDamp неполучается.
Здравствуйте.
Для чтения и сохранения файлов TMyDump использует стандартный класс TFileStream. TMyDump отображает все ошибки, которые генерирует TFileStream.
Мы провели тестирование описанных вами ситуаций - в каждой из них возникает сообщение об ошибке.
Для чтения и сохранения файлов TMyDump использует стандартный класс TFileStream. TMyDump отображает все ошибки, которые генерирует TFileStream.
Мы провели тестирование описанных вами ситуаций - в каждой из них возникает сообщение об ошибке.
Re: Перекидка баз MyDamp неполучается.
Ни разу не видел сообщения от дамп, может какие-то настройки у меня неправильные win7.
Исключение генерировалось когда флэшка была отформатирована с размером кластера 16 под фат 32.
Попробуйте для тестирования в сохраненный дамп, с середины исправить текст на произвольные, а затем восстановить.
Исключение генерировалось когда флэшка была отформатирована с размером кластера 16 под фат 32.
Попробуйте для тестирования в сохраненный дамп, с середины исправить текст на произвольные, а затем восстановить.
-
- Devart Team
- Сообщения: 51
- Зарегистрирован: Пн 28 янв 2013 11:54
Re: Перекидка баз MyDamp неполучается.
Здравствуйте.
При попытке выполнить TMyDump.RestoreFromFile из файла с некорректными данными возникает ошибка SQL синтаксиса. Если модификации сохранённого файла не нарушают SQL синтаксис, то невозможно определить, что файл был испорчен.
Пожалуйста, пришлите мне на dmitryk*devart*com некорректный файл, восстановление из которого не вызывает ошибки.
При попытке выполнить TMyDump.RestoreFromFile из файла с некорректными данными возникает ошибка SQL синтаксиса. Если модификации сохранённого файла не нарушают SQL синтаксис, то невозможно определить, что файл был испорчен.
Пожалуйста, пришлите мне на dmitryk*devart*com некорректный файл, восстановление из которого не вызывает ошибки.
Re: Перекидка баз MyDamp неполучается.
К сожалению, файл удалил.
Делал сохранение в файл процедурой выше. На флэшке было мало памяти, я не знал. Сохранилось быстрей че надо, а при восстановлении восстановилось быстрей, только части таблиц не было. При просмотре текстовым редакторе после середины дампа была абракадабра, никаких сообщений не было, случайно заметил по отсутствующим данным. Повторная перезапись этого файла, дала тот же результат, пока не понял, что не хватает памяти. Освободил и место и все заработало.
А не подскажите, можно ли как-то фильтровать данные при дампе? Наподобие, сохранять только where st=0?
Делал сохранение в файл процедурой выше. На флэшке было мало памяти, я не знал. Сохранилось быстрей че надо, а при восстановлении восстановилось быстрей, только части таблиц не было. При просмотре текстовым редакторе после середины дампа была абракадабра, никаких сообщений не было, случайно заметил по отсутствующим данным. Повторная перезапись этого файла, дала тот же результат, пока не понял, что не хватает памяти. Освободил и место и все заработало.
А не подскажите, можно ли как-то фильтровать данные при дампе? Наподобие, сохранять только where st=0?
-
- Devart Team
- Сообщения: 51
- Зарегистрирован: Пн 28 янв 2013 11:54
Re: Перекидка баз MyDamp неполучается.
Здравствуйте.
Для частичного сохранения данных вы можете использовать метод TMyDump.BackupQuery, например:
Детальную информацию о TMyDump.BackupQuery вы можете найти в документации MyDAC.
Для частичного сохранения данных вы можете использовать метод TMyDump.BackupQuery, например:
Код: Выделить всё
MyDump1.BackupQuery('select * from YourTable where st=0');
Re: Перекидка баз MyDamp неполучается.
Спасибо, то что надо.
Re: Перекидка баз MyDamp неполучается.
Решил попробовать, возникло несколько вопросов. Детальной информации в справке не нашел. Пример тоже не прояснил. Непонятен принцип работы TMyDump.BackupQuery. У меня много таблиц и задача состоит в сохранении в 1 файл наподобие MyDump1->BackupToFile(fname);, но стой лишь разницей, что должно быть по условию. Если можно, на примере трех таблиц с сохранением в один файл. вот условия:DemetrionQ писал(а):Здравствуйте.
Для частичного сохранения данных вы можете использовать метод TMyDump.BackupQuery, например:Детальную информацию о TMyDump.BackupQuery вы можете найти в документации MyDAC.Код: Выделить всё
MyDump1.BackupQuery('select * from YourTable where st=0');
Код: Выделить всё
SELECT * FROM MYTABLE1
SELECT * FROM MYTABLE2 WHERE MYVARIBLE=5
SELECT * FROM MYTABLE3 INNER JOIN MYTABLE1 ON MYTABLE3.VAR1=MYTABLE1.VAR2
-
- Devart Team
- Сообщения: 51
- Зарегистрирован: Пн 28 янв 2013 11:54
Re: Перекидка баз MyDamp неполучается.
Здравствуйте.
При вызове TMyDump.BackupQuery данные сохраняются в TMyDump.SQL, после чего их можно сохранить в файл с помощью метода TMyDump.SQL.SaveToFile, например:
Также вы можете сохранить в файл частичную выборку данных из таблицы с помощью метода TMyDump.BackupToFile следующим образом:
При использовании методов BackupQuery и BackupToFile можно указывать только один SQL запрос. Чтобы сохранить результаты нескольких запросов, используйте следующий код:
При вызове TMyDump.BackupQuery данные сохраняются в TMyDump.SQL, после чего их можно сохранить в файл с помощью метода TMyDump.SQL.SaveToFile, например:
Код: Выделить всё
MyDump1->BackupQuery("SELECT * FROM MYTABLE2 WHERE MYVARIBLE = 5");
MyDump1->SQL->SaveToFile("C:\\TableBackup.txt");
Код: Выделить всё
MyDump1->BackupToFile("C:\\TableBackup.txt", "SELECT * FROM MYTABLE2 WHERE MYVARIBLE = 5");
Код: Выделить всё
TStringList* SL = new TStringList;
try
{
MyDump1->BackupQuery("SELECT * FROM MYTABLE1");
SL->AddStrings(MyDump1->SQL);
MyDump1->BackupQuery("SELECT * FROM MYTABLE2 WHERE MYVARIBLE=5");
SL->AddStrings(MyDump1->SQL);
MyDump1->BackupQuery("SELECT * FROM MYTABLE3 INNER JOIN MYTABLE1 ON MYTABLE3.VAR1=MYTABLE1.VAR2");
SL->AddStrings(MyDump1->SQL);
SL->SaveToFile("C:\\TableBackup.txt");
}
__finally
{
SL->Free();
}