Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

Можно ли программно в ODBC прописывать DSN???   Найти похожие ветки 

 
Andrew Frol   (2004-05-08 12:24) [0]

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


 
sniknik ©   (2004-05-08 12:41) [1]

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;


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

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


 
KSergey ©   (2004-05-10 09:56) [3]

См. ф-цию SQLConfigDataSource

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.967 c
1-1084558378
Bulanov
2004-05-14 22:12
2004.05.30
Развернуть приложение


6-1081499243
Srg
2004-04-09 12:27
2004.05.30
TMemoryStream & TidTCPServer


8-1072430595
undersun
2003-12-26 12:23
2004.05.30
DSPack.SampleGrabber не грабит с камеры


7-1082788374
Hkr
2004-04-24 10:32
2004.05.30
Скрыть из ALT-Tab


1-1084884672
DimonNew
2004-05-18 16:51
2004.05.30
TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский