Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли программно в ODBC прописывать DSN??? [D6, MSSQL, MySQL, dBase, FoxPro]


Andrew Frol ©   (2004-05-08 12:24:00) 

Если да, то как? Подскажите!


KSergey   (2004-05-10 09:56:00) [1]

См. ф-цию SQLConfigDataSource

Пример ее использования можно найти тут
http://delphibase.endimus.ru/?action=viewfunc&topic=basemssql&id=10442


Andrew Frol   (2004-05-08 12:51:00) [2]

Все ясно. Огромное спасибо!


sniknik   (2004-05-08 12:41:00) [3]

procedure TForm1.Button1Click(Sender: TObject);
const
keyODBC         = '\SOFTWARE\ODBC\ODBC.INI\';
keyODBCINST     = '\SOFTWARE\ODBC\ODBCINST.INI\';
keyODBCDrivers  = keyODBCINST + 'ODBC Drivers\';
keySQLServer    = 'SQL Server';
keyODBCDataSrcs = 'ODBC Data Sources';

vdInstalled     = 'Installed';
vnDriver        = 'Driver';
vnDataBase      = 'DataBase';
vnDescription   = 'Description';
vnLastUser      = 'LastUser';
vnServer        = 'Server';

NewDNSName    : string = 'NewDNSName';
DataBase      : string = 'master';
Description   : string = 'UAIGORS SQL Server';
LastUser      : string = 'sa';
Server        : string = 'UAIGORS';
Driver        : string = 'sqlsrv32.dll';

var
Reg           : TRegistry;

begin
Reg := TRegistry.Create;
with Reg do
 try
  RootKey := HKEY_LOCAL_MACHINE;
  if OpenKey(keyODBC, False) and OpenKey(keyODBCINST, False) then
   begin
    if OpenKey(keyODBCDrivers, False) then
       if ReadString(keySQLServer) = vdInstalled then
        begin
         if not KeyExists(keyODBC + '\' + NewDNSName) then
            begin
             if OpenKey(keyODBCINST + '\' + keySQLServer, False) then
              Driver := ReadString(vnDriver);

             if CreateKey(keyODBC + '\' + NewDNSName) then
              begin
               OpenKey(keyODBC + '\' + NewDNSName, False);
               WriteString(vnDataBase,    DataBase);
               WriteString(vnDescription, Description);
               WriteString(vnDriver,      Driver);
               WriteString(vnLastUser,    LastUser);
               WriteString(vnServer,      Server);
               if OpenKey(keyODBC + '\' + keyODBCDataSrcs, False) then WriteString(NewDNSName, keySQLServer);
              end
             else
              MessageBox(0, PChar('Can not create new registry key: '+NewDNSName), 'Warning', MB_ICONWARNING);
            end
         else
          MessageBox(0, 'This DNS name already exists', 'Warning', MB_ICONWARNING);
        end
       else
        MessageBox(0, 'SQL Server driver not installed', 'Warning', MB_ICONWARNING);
   end
  else
   MessageBox(0, 'ODBC not installed', 'Warning', MB_ICONWARNING);
 finally
  Reg.Free;
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо