Главная страница
    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.031 c
1-84386
killer
2003-06-05 17:08
2003.06.26
Можно ли какнибудь в одном файле сохранить текст фотографии?


1-84393
Rel_
2003-06-09 14:05
2003.06.26
кол-во своб. памяти


3-84034
st-av
2003-05-31 18:13
2003.06.26
DBGrid и форматированный ввод


3-83889
Levsha
2003-06-01 21:41
2003.06.26
Lookup field в DBgride, у когонить получалось???


14-84727
nick-from
2003-06-05 14:17
2003.06.26
DBF





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