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

Вниз

Программное создание источника DDBC для MS SQL. Решение.   Найти похожие ветки 

 
KSergey   (2003-05-30 14:59) [0]

1.Я понимаю, что это уже не актуально. Через ODBC уже не все работают.
2.Функция заточена для узкого, конкретного использования (особенно что касается принудительной установки порта и протокола).
3.Не уверен, что порт и протокол будет так же настраиваться в реестре и в дальнейшем, документированного механизма найти не удалось.
4.НО: это работает! ;) Может кому-то и пригодиться, тем более - на дельфи.

////////////////////////////////////////////////////////////////////////////////
//
// Модуль управления источниками DNS
//
////////////////////////////////////////////////////////////////////////////////

unit DNSConf;

interface

uses
Windows, Registry;

function AddDNSMSSQLSource (const ADNSName, AServer, ADataBase: String; ADescription: String = ""): Boolean;
function SQLConfigDataSource (
hwndParent: HWND; // Указатель на окно вызвавшее функцию
fRequest: WORD; // Тип запроса
lpszDriver: PChar; // Пользовательское имя драйвера
lpszAttributes: PChar // атрибуты
): Boolean; stdcall; external "odbccp32.dll" name "SQLConfigDataSource";

const
ODBC_ADD_DSN = 1; // Add data source
ODBC_CONFIG_DSN = 2; // Configure (edit) data source
ODBC_REMOVE_DSN = 3; // Remove data source

implementation

{******************************************************************************
* AddDNSMSSQLSource - добавляет (модифицирует) пользовательский DNS-источник
* для доступа с MS SQL серверу
* Дополнительно в клиентских настройках прописывается
* протокол TCP/IP и порт 1433
*
* Вход: ADNSName - имя DNS-источника
* AServer - имя сервера
* ADataBase - наименование БД на сервере по умолчанию
* ADescription - описание источника (необязательный параметр)
*
* Выход: TRUE - в случае успеха, FALSE - в противном случае
******************************************************************************}

function AddDNSMSSQLSource (const ADNSName, AServer, ADataBase: String; ADescription: String = ""): Boolean;
const
driver = "SQL Server";
var
params: String;

// эта ф-ция прописывает необходимые настройки для доступа к MS SQL по TCP/IP и на порт 1433
function SetNetLibParam: Boolean;
begin
Result := FALSE;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey("\Software\Microsoft\MSSQLServer\Client", TRUE) then
if NOT KeyExists("ConnectTo") then
CreateKey("ConnectTo");
if OpenKey("ConnectTo", TRUE) then
begin
WriteString(AServer,"DBMSSOCN," + AServer + ",1433");
Result := TRUE;
end;
finally
CloseKey;
Free;
end;
end;

begin
params := "DSN=" + ADNSName + #0"Server=" + AServer + #0"DataBase= " + ADataBase + #0"Description=" + ADescription + #0#0;
Result := SQLConfigDataSource(0, ODBC_ADD_DSN, PChar(driver), PChar(params));
Result := Result AND SetNetLibParam;
end;

end.


 
KSergey   (2003-05-30 15:04) [1]

Да, совсем забыл.
Чтобы все было честно - ссылки на источники:
http://www.rsdn.ru/qna/default.asp?db/datasrc.xml
http://www.bbd.net.ru/modules.php?op=modload&name=News&file=article&sid=16
http://www.firststeps.ru/mfc/odbc/r.php?14


 
KSergey   (2003-06-02 08:30) [2]

Простите, подниму
Вдруг кому-то все же надо...



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

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

Наверх




Память: 0.45 MB
Время: 0.033 c
1-84237
Shirson
2003-06-11 14:38
2003.06.26
Запуск другой программы и ожидаение её завершения.


3-83985
shoo
2003-05-30 10:23
2003.06.26
Выделить программно все строки в dbgrid е


1-84069
Exteris
2003-06-10 09:19
2003.06.26
ScrollBox


3-84029
Step[B.M.]
2003-05-31 14:30
2003.06.26
Поиск ближайшего соответствия в IBTable


14-84676
Антон
2003-06-10 16:54
2003.06.26
Подскажите пожалуйста, где найти компонент





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