Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2013, 13:10   #1
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
Вопрос Создание ODBC DSN for SQLite3 from Delphi 7

Прошу помощи в создании dsn программно...нашла пример кода, но для Access...код плохо понимаю...
прошу помочь разобраться в нем и конкретно ткнуть пальцем что где поменять под себя и на что =)
Код:
unit ODBCDSN;

interface

uses Windows, Classes;

var
ParentWND: HWND;

function CreateDSN(DSNName, Driver, Attributes: string): boolean;
function EditDSN(DSNName, Driver, Attributes: string): boolean;
function DeleteDSN(DSNName, Driver: string): boolean;
function IsODBCDSNLoaded: boolean;

implementation

const
ODBCDSNLib = 'ODBCCP32.DLL';

const
ODBC_ADD_DSN = 1;
ODBC_CONFIG_DSN = 2;
ODBC_REMOVE_DSN = 3;

var
ODBCDSNHandle: THandle = 0;
_SQL_ConfigDataSource :
function (hWnd: THandle; fRequest: LongWord;
lpszDriver, lpszAttributes: PWideString): LongWord; stdcall;

function IsODBCDSNLoaded: boolean;
begin
result := (ODBCDSNHandle <> 0);
end;

function CreateDSN(DSNName, Driver, Attributes: string): boolean;
begin
result := (IsODBCDSNLoaded);
if (result) then
result := boolean(_SQL_ConfigDataSource(ParentWND, ODBC_ADD_DSN,
PWideString(Driver), PWideString('DSN=' + DSNName + chr(0) + Attributes)));
end;

function EditDSN(DSNName, Driver, Attributes: string): boolean;
begin
result := (IsODBCDSNLoaded);
if (result) then
result := boolean(_SQL_ConfigDataSource(ParentWND, ODBC_CONFIG_DSN,
PWideString(Driver), PWideString('DSN=' + DSNName + chr(0) + Attributes)));
end;

function DeleteDSN(DSNName, Driver: string): boolean;
begin
result := (IsODBCDSNLoaded);
if (result) then
result := boolean(_SQL_ConfigDataSource(ParentWND, ODBC_REMOVE_DSN,
PWideString(Driver), PWideString('DSN=' + DSNName + chr(0))));
end;

function LoadODBCDSN: boolean;
begin
result := IsODBCDSNLoaded;
if (not result) then begin
ODBCDSNHandle := LoadLibrary(ODBCDSNLib);
result := IsODBCDSNLoaded;
if (result) then begin
result := (GetProcAddress(ODBCDSNHandle, 'SQLConfigDataSource') <> nil);
if (result) then
_SQL_ConfigDataSource := GetProcAddress(ODBCDSNHandle, 'SQLConfigDataSource');
end;
end;
end;

procedure UnloadODBCDSN;
begin
if (IsODBCDSNLoaded) then
FreeLibrary(ODBCDSNHandle);
end;

Initialization
ParentWND := 0;
LoadODBCDSN;

Finalization
UnloadODBCDSN;

end.
Есть задача - реши ее!
ТипичныйСтудент вне форума Ответить с цитированием
Старый 13.06.2013, 13:31   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
поменять под себя и на что
А что нужно то?
Это модуль. Его не менять нужно а вызывать из него функции.
Я только предполагаю что:
Код:
uses ODBCDSN
...
if  CreateDSN('MyDriver', 'Firebird/InterBase(r) driver', 'UID=sysdba;PWD=masterkey;') then ODBC подключение создано.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 13:38   #3
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что нужно то?
Это модуль. Его не менять нужно а вызывать из него функции.
Я только предполагаю что:
Код:
uses ODBCDSN
...
if  CreateDSN('MyDriver', 'Firebird/InterBase(r) driver', 'UID=sysdba;PWD=masterkey;') then ODBC подключение создано.
дописать строку эту в модуль и просто его подключить? а как проверить работает ли? удалить тот, который создавала в ручную и попробовать запустить так?
Есть задача - реши ее!
ТипичныйСтудент вне форума Ответить с цитированием
Старый 13.06.2013, 14:45   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как проверить работает ли?
Бубен есть? Махай
Я не знаю что делает та либа что в модуле задействована, но возможно в настройках ODBC появится новое подключение.
Про функцию _SQL_ConfigDataSource нужно почитать в MSDN.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 16:19   #5
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
По умолчанию

нету...бубна=) и нового подключения тоже...ладно, попробую запустить на другом пк, если пойдет - значит работает=)
Есть задача - реши ее!
ТипичныйСтудент вне форума Ответить с цитированием
Старый 13.06.2013, 18:06   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Читай МСДН.
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

И вот это тоже полезно:
http://netcode.ru/cpp/?artID=2382
http://support.microsoft.com/kb/287668
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 21:15   #7
ТипичныйСтудент
Форумчанин
 
Аватар для ТипичныйСтудент
 
Регистрация: 09.04.2013
Сообщений: 110
По умолчанию

ой, спасибо!!! завтра уже на свежую голову попробую разобраться!
Есть задача - реши ее!
ТипичныйСтудент вне форума Ответить с цитированием
Старый 13.06.2013, 21:16   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну да... Утро вечера, как говорится, мудренее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
odbc в delphi hunter03 БД в Delphi 1 28.09.2012 21:21
Динамическое подключение к PostgreSQL серверу из delphi без создания источника данных dsn lildee БД в Delphi 1 03.04.2012 12:03
подключение к Excel из delphi через ODBC.возможно ли это без глюков? betirsolt БД в Delphi 0 13.06.2010 01:05
Delphi 7 ADOConnection Mysql ODBC 5.1.6 Winx64 Spot БД в Delphi 0 15.01.2010 04:52
Создание dsn из Дельфи Demonk БД в Delphi 2 01.09.2009 08:40