Главная страница
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.012 c
14-68518
ferrik
2003-07-31 19:35
2003.08.21
Http


14-68473
URKSI
2003-08-06 13:10
2003.08.21
Создание отчёта


14-68550
edik
2003-08-02 16:38
2003.08.21
Где взять документацию


1-68370
XenonXX
2003-08-08 08:22
2003.08.21
Поиск, оптимизация.


1-68406
The X
2003-08-07 13:28
2003.08.21
Случайное перемешивание данных 1-мерного массива