Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 DSN для Oracle 8.0.5  [new]
Vendict
Member

Откуда:
Сообщений: 3
Имеем код для динамического создания DSN:

TSQLConfigDataSource = function(hwndParent: HWND; 
  fRequest: WORD; 
  lpszDriver: LPCSTR; 
  lpszAttributes: LPCSTR): BOOL; stdcall; 

function CreateODBCDriver(fail_name, cl: string): Boolean; 
const       
ODBC_ADD_DSN = 1; (* Add data source *) 
ODBC_CONFIG_DSN = 2; (* Configure (edit) data source *) 
ODBC_REMOVE_DSN = 3; (* Remove data source *) 
ODBC_ADD_SYS_DSN = 4; (* add a system DSN *) 
ODBC_CONFIG_SYS_DSN = 5; (* Configure a system DSN *) 
ODBC_REMOVE_SYS_DSN = 6; (* remove a system DSN *) 
var 
pFn: TSQLConfigDataSource; 
hLib: LongWord; 
strDriver, strAttr: string; 
fResult: BOOL; 
srInfo: TSearchRec; 
begin 
Result := True; 
hLib := LoadLibrary('ODBCCP32'); //load from default path 
if (hLib <> NULL) then 
begin 
  @pFn := GetProcAddress(hLib, 'SQLConfigDataSource'); 
  if (@pFn <> nil) then 
  begin (* force (re-)create DSN *) 
    strDriver := 'Microsoft ODBC for Oracle'; 
    strAttr := 'DSN=anti' + #0 + 'UID=demo' + #0 + 'PWD=demo' + #0+ 'SERVER='; 
    fResult := pFn(0, ODBC_ADD_DSN, @strDriver[1], @strAttr[1]); 
    if (fResult = false) then 
    begin 
      ShowMessage('Create DSN (Datasource) failed!'); 
      Result := False; 
      Exit; 
    end; 
  end; 
  FreeLibrary(hLib); 
end 
else 
begin 
  ShowMessage('Unable to load ODBCCP32.DLL'); 
  Result := False; 
end; 
Result := fResult; 
end; 

и процедура вылетает на MessageBox.
неужели я первый с этими граблями столкнулся ?!
22 окт 07, 17:49    [4824140]     Ответить | Цитировать Сообщить модератору
 Re: DSN для Oracle 8.0.5  [new]
Den_TST
Member

Откуда:
Сообщений: 68
1. C какой ошибкой вылетает
2. Этот раздел форума называется Oracle. Ваш вопрос имел бы больше шансов для ответа в разделе Delphi
22 окт 07, 17:57    [4824193]     Ответить | Цитировать Сообщить модератору
 Re: DSN для Oracle 8.0.5  [new]
Vendict
Member

Откуда:
Сообщений: 3
1. Выполняется строчка
ShowMessage('Unable to load ODBCCP32.DLL'); 
2. Я заметил раздел Delphi уже после создания темы ... а делать дубль... по-моему хуже.

если можно, пусть модератор перекинет.
22 окт 07, 18:15    [4824287]     Ответить | Цитировать Сообщить модератору
 Re: DSN для Oracle 8.0.5  [new]
Vendict
Member

Откуда:
Сообщений: 3
тьфу ... строчка
      ShowMessage('Create DSN (Datasource) failed!'); 
конечно
22 окт 07, 18:16    [4824292]     Ответить | Цитировать Сообщить модератору
 Re: DSN для Oracle 8.0.5  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9734
Попробуйте в первый параметр pFn передать Application.Handle.
22 окт 07, 21:51    [4824849]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить