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


Автор: Deiv 19.6.2007, 15:47
Доброе утро,  
Я работаю с Delphi7 и,  
Как приступать через КОД следующие шаги?  
1.- Как знать если MDAC установленно или нет в Машине? (CPU)  
2.- Как знать какая версия MDAC в Машине? Как сравнить версию установленную с моей собственной версией что у меня есть?  
3.- И как установят Программу MDAC через код?


Good morning,  
I work with Delphi7 and,  
How to proceed for CODE the following steps?  
1.- How to know if it is installed or not the MDAC in a Machine? (CPU)  
2.- How to know that version of MDAC? How to compare the version installed with my own version?  
3.- and How to install the Program MDAC for code?



Автор: mutex 19.6.2007, 23:39
1. Проверить есть ли файл Program Files\Common Files\System\Ado\MSADO15.DLL; обычно он имеется.
2. Проверить версию этого файла.
3. Запустить Микрософтовский файл Mdac_typ.exe

Автор: Deiv 27.6.2007, 16:54
Спасибо за ответ, но ясно, что те шаги. Mне нужно помощь в:  
Цитата(deiv)
Как приступать через КОД
  
Например рекомендовали мне:  
Код

with TRegistry.Create do
try
  RootKey := HKEY_LOCAL_MACHINE;
  if OpenKey('SOFTWARE\Microsoft\DataAccess', false) then MDACVersion := ReadString('FullInstallVer');
finally
  Free;
end;
 
Но, я не знаю это где разместить, и Как знать результат кода?  


Цитата(mutex)

1. Проверить есть ли файл Программа Файлы\Общие Файлы\Система\Суматоха\MSADO15. DLL; обычно он имеется.
2. Проверить версию этого файла.
3. Запустить Микрософтовский файл Mdac_typ.exe 

1. Как через КОД Delphi?
2. Как через КОД?  
3. У меня есть programm MDAC 2.8 SP1, но как установят MDAC через код Delphi? 

Автор: mutex 27.6.2007, 18:00
program TestMdac;
{$APPTYPE CONSOLE}
uses SysUtils, Windows, ShellAPI, Registry;

var
  Mdac_typ, MDACVersion: string;
begin
  with TRegistry.Create(KEY_READ) do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    if OpenKey('SOFTWARE\Microsoft\DataAccess', false) then
      MDACVersion := Copy(ReadString('FullInstallVer'), 1, 3)
    else
      MDACVersion := '';
  finally
    Free;
  end;
  if MDACVersion >= '2.8' then
    exit;
  Mdac_typ := ExtractFilePath(ParamStr(0)) + 'Mdac_typ.exe';
  if FileExists(Mdac_typ) then
    ShellExecute(0, 'open', PChar(Mdac_typ), nil, nil, 0)
  else begin
    writeln(Mdac_typ + ' - MDAC 2.8 not found');
    readln;
  end;
end.

Автор: Deiv 27.6.2007, 23:54
Спасибо mutex, 
Попробую код, и комментирую потом, хорошо? 
Deiv

Автор: Deiv 28.6.2007, 15:18
Спасибо mutex, код работает очень хорошо.

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