Главная страница
    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.46 MB
Время: 0.036 c
7-1082981488
Mesha
2004-04-26 16:11
2004.05.30
Путь к папке Program files


4-1081746607
Delphi5.01
2004-04-12 09:10
2004.05.30
Как используя только API функции можно включить WordWrap


7-1083125533
you
2004-04-28 08:12
2004.05.30
Как проверить наличие дискеты в дисководе


9-1075222195
Black Fury
2004-01-27 19:49
2004.05.30
Как интегрить файл справки DelphiX в Дельфи7?


14-1084259698
Ega23
2004-05-11 11:14
2004.05.30
Сразу вопрос. Правда по VC++ :o)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский