środa, 28 października 2009

Wykrycie źródła ODBC do podanej nazwy


function BOOL DetectODBC(sNazwa, sServer, sDataBase, nVerDriver)
string RegPath,sVersion,sVer,sKey,sValue,sDriver;
BOOL bResult, bFind;
number nSize,nType,nResult;
begin
bResult = TRUE;bFind = FALSE;
WriteLog(0,"* Sprawdzenie istniejących źrodeł ODBC");
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegPath="SOFTWARE\\ODBC\\ODBC.INI\\"+sNazwa;
if (RegDBKeyExist(RegPath)==1) then
bFind=TRUE;
//Odczyt Serwera i Bazy i zwrocenie przez referencje
sServer="";
sKey="";
sKey = "SOFTWARE\\ODBC\\ODBC.INI\\"+sNazwa;
sValue = "Server";
nResult = RegDBGetKeyValueEx( sKey, sValue, nType, sServer, nSize );
sValue = "Database";
nResult = RegDBGetKeyValueEx( sKey, sValue, nType, sDataBase, nSize );
sValue = "Driver";
nResult = RegDBGetKeyValueEx( sKey, sValue, nType, sDriver, nSize );
endif;


RegPath="SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources";
if (RegDBKeyExist(RegPath)==1) then
if (RegDBGetKeyValueEx(RegPath,sNazwa,nType,sVersion,nSize)=0) then
bFind=TRUE;
endif;
endif;
if (bFind) then
WriteLog(1,"- znaleziono źrodla ODBC do "+sNazwa);
WriteLog(2,"Nazwa Serwera SQL :"+sServer);
if (StrLength(sDataBase)>0) then WriteLog(2,"Nazwa bazy danych :"+sDataBase);
else WriteLog(2,"Nazwa bazy danych : nie ustalona w źrodłach");
endif;
if (StrLength(sDriver)>0) then
WriteLog(2,"Sterownik do bazy danych :"+sDriver);
ParsePath(sVer,sDriver,FILENAME);
if (StrCompare(sVer,"sqlncli.dll")=0) then nVerDriver = 90; endif;
if (StrCompare(sVer,"sqlsrv32.dll")=0) then nVerDriver = 80; endif;
else
WriteLog(2,"Nazwa sterownika : nie ustalona w źrodłach");
endif;
if (StrLength(sServer)>0)&&(StrLength(sDataBase)>0) then return TRUE;
else return FALSE;
endif;

else
WriteLog(1,"- brak istniejących źródeł ODBC do "+sNazwa);
endif;

end;

Brak komentarzy:

Prześlij komentarz