Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > Аксесс и смена пароля через ODBC или Jet


Автор: En_t_end 1.9.2005, 13:37
Как сменить пароль к базе, зная старый ?

Автор: chaos 2.9.2005, 06:13
можно так попробовать

Код

csSourceConnection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database password=%s",m_csSourcePath,m_csPassWdOld);

csDestConnection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database password=%s",m_csSourcePath,m_csPassWdNew);

JRO::IJetEnginePtr jet(__uuidof(JRO::JetEngine));
        
jet->CompactDatabase(csSourceConnection.AllocSysString(),csDestConnection.AllocSysString());


но не уверен что получиться да и правельно это smile

Автор: En_t_end 2.9.2005, 06:53
chaos
Вроде похоже на правду, вот только m_csSourcePath вот втором случае должен содержать путь и новое название, ибо jet не умеет автоматически удалять старый источник. Это надо делать вручную, а потом переименовывать новый источник в старый.

Автор: chaos 2.9.2005, 07:26
Цитата(En_t_end @ 2.9.2005, 06:53)
chaos
..., вот только m_csSourcePath вот втором случае должен содержать путь и новое название, ибо jet не умеет автоматически удалять старый источник. Это надо делать вручную, а потом переименовывать новый источник в старый.

упс, извени забыл smile

Автор: Тамирлан 19.4.2006, 14:29
1.Насколько я понял переменные m_csPassWdNew, m_csPassWdOld, m_csSourcePath, m_csSourcePath0 - типа char[]. 
  Это так?

2.Какого типа переменные (если это переменные) - csSourceConnection, csDestConnection?

3.И поясните пожалуйста, что за переменная jet? У меня на неё выходит ошбка: "Неизвестный символ".

4.Так же непонятно назначение третьей строчки:
  JRO::IJetEnginePtr jet(__uuidof(JRO::JetEngine));
  Кажестя я просто не знаю какого-то класса.

Подскажите кто понимает. У меня лично только не связанные догадки.
Буду благодарен любой информации.


 

Автор: chaos 20.4.2006, 07:35
че то блин у меня с цитированием проблемы smile 
Тамирлан, 
ответ на 
1 вопрос - префикс cs - CString, m - поле класса
2 вопрос - см. ответ 1
решением остальный проблем станет вставка:
Код

#import "C:\PROGRAM FILES\COMMON FILES\System\ado\Msado26.tlb" no_namespace rename ("EOF","adoEOF")
#import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" 


 

Автор: Тамирлан 20.4.2006, 17:03
Что-то вопросы у меня не исчезают. smile 

1.Что за тип CString? Я его и в Help-нике не нашел, и не встречал ранее.

2.Вставка строк "#import ...". Эти файлы находятся именно по этому адресу, но почему-то он все время выдает ошибку:
  Unable to open include file 'Msado26.tlb'
  Unable to open include file 'MSJRO.DLL'
  (Заменять   "\"   на   "\\"   я пробовал   -   безрезультатно)
  Не подскажешь, в чем дело?


Может пример кода разрешит все вопросы?!
Например, в виде :

    void __fastcall TFormGeneral::Button1Click(TObject *Sender)
    {    // смена пароля БД
    } 

Автор: chaos 22.4.2006, 09:12
так ты пользуештся билдером!
в твоем случе не CString а какой-нибудь AnsiString.
А то что остальное не работет не знаю - не селен в борландовых продуктах, обращайся в топик по билдеру!
 

Автор: Любитель 23.4.2006, 18:54
А #import в билдере работает как и в VC++? 

Автор: Тамирлан 28.4.2006, 17:49
Благодарю!!!   smile  Будем разбираться - как это на нашем делается.
Если разберусь покажу что получится (чтоб последователи не мучались smile ) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)