Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.21;
Скачать: CL | DM;

Вниз

Доброго времени суток , вопрос по работе с реестром   Найти похожие ветки 

 
SergeyI ©   (2003-06-02 14:54) [0]

Доброго времени суток , вопрос по работе с реестром
пытаюсь создать ODBC источник путём записи в реестр информации
записывает, но после выхода из процедуры вываливается ошибка
нарушение доступа к памяти
вот текст :

begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey("\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources",true);
reg.WriteString("Akonit","Microsoft Visual FoxPro Driver");
reg.CloseKey;

Reg.OpenKey("\SOFTWARE\ODBC\ODBC.INI\Akonit",true);
GetWindowsDirectory(Windir,200);
reg.WriteString("Driver",String(WinDir)+"\System32\vfpodbc.dll");
reg.WriteString("SourceDB",ExtractFileDir(Application.ExeName));
reg.WriteString("Description","Для локальной базы СЕЗАМ");
reg.WriteString("SourceType","DBF");
Reg.WriteString("BackgroundFetch","Yes");
Reg.WriteString("Exclusive","No");
Reg.WriteString("Null","Yes");
Reg.WriteString("Deleted","Yes");
Reg.WriteString("Collate","RUSSIAN");
( "SetNoCountOn","No")
Доброго времени суток , вопрос по работе с реестром
пытаюсь создать ODBC источник путём записи в реестр информации
записывает, но после выхода из процедуры вываливается ошибка
нарушение доступа к памяти
вот текст :

begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey("\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources",true);
reg.WriteString("Akonit","Microsoft Visual FoxPro Driver");
reg.CloseKey;

Reg.OpenKey("\SOFTWARE\ODBC\ODBC.INI\Akonit",true);
GetWindowsDirectory(Windir,200);
reg.WriteString("Driver",String(WinDir)+"\System32\vfpodbc.dll");
reg.WriteString("SourceDB",ExtractFileDir(Application.ExeName));
reg.WriteString("Description","Для локальной базы СЕЗАМ");
reg.WriteString("SourceType","DBF");
Reg.WriteString("BackgroundFetch","Yes");
Reg.WriteString("Exclusive","No");
Reg.WriteString("Null","Yes");
Reg.WriteString("Deleted","Yes");
Reg.WriteString("Collate","RUSSIAN");
Reg.WriteString("SetNoCountOn","No");
reg.CloseKey;
end ;

Где копать ?


 
Игорь Шевченко ©   (2003-06-02 16:30) [1]

Как объявлена переменная windir ?


 
SergeyI ©   (2003-06-02 16:56) [2]

(2) pchar


 
VMcL ©   (2003-06-02 19:14) [3]

>SergeyI © (02.06.03 16:56)

Не вижу выделения под Windir памяти. В описании функции GetWindowsDirectory разве написано, что она сама память выделяет?


 
SergeyI ©   (2003-06-03 09:08) [4]

>VMcL Спасибо


 
Lord Warlock ©   (2003-06-03 09:24) [5]

а SQLConfigDataSource не судьба использовать?

Пример:

const StuffConfig: array [0..MAX_PATH] of Char="DSN=stuff"#0"SourceType=DBF"#0"SourceDB=диск:\путь\база";
FoxProDriver: array [0..MAX_PATH] of Char="Microsoft FoxPro VFP Driver (*.dbf)";


if SQLConfigDataSource(0,4,FoxProDriver,StuffConfig) then
Writeln("DSN ODBC "stuff" is added successfully")
else
( "ERROR! Can`t add DSN ODBC "stuff"")
а SQLConfigDataSource не судьба использовать?

Пример:

const StuffConfig: array [0..MAX_PATH] of Char="DSN=stuff"#0"SourceType=DBF"#0"SourceDB=диск:\путь\база";
FoxProDriver: array [0..MAX_PATH] of Char="Microsoft FoxPro VFP Driver (*.dbf)";


if SQLConfigDataSource(0,4,FoxProDriver,StuffConfig) then
Writeln("DSN ODBC "stuff" is added successfully")
else
Writeln("ERROR! Can`t add DSN ODBC "stuff"");


 
Lord Warlock ©   (2003-06-03 09:27) [6]

К этому же прилагается:

interface

{$EXTERNALSYM SQLConfigDataSource}
function SQLConfigDataSource(hwnd: HWND; fRequest: UINT;lpszDriver:PChar;lpszAttributes:PChar): BOOL;stdcall;

implementation
function SQLConfigDataSource; external "odbccp32.dll" name "SQLConfigDataSource";


 
n0wheremany   (2003-06-07 00:05) [7]

Чувак надо освобождать память - reg.free!!!1
Запомни это!!
Этот пример аналогичен типу Tstrings!! и многим другим такимже!



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

Текущий архив: 2003.08.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
3-68160
VID
2003-07-29 13:29
2003.08.21
TpFIBQuery, запись данных из потока в параметр Insert-запроса


3-68174
Tahion2
2003-07-29 15:26
2003.08.21
Как сохранить в файл информацию про отображение таблицы?


3-68197
adolf_99
2003-07-28 13:33
2003.08.21
Filter


3-68161
oss
2003-07-28 12:01
2003.08.21
поднять базу


14-68480
ZeroDivide
2003-08-06 09:00
2003.08.21
С начала я бросил курить...