Check whether an ODBC entry exists: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(SF: wether -> whether.)
m (Updated author and download links, and changed format of some pages.)
Line 52: Line 52:
</highlight-nsis>
</highlight-nsis>


Page author: preisl
Page author: [[User:preisl|preisl]]

Revision as of 12:19, 23 April 2005

The Function

;
; Check whether an ODBC entry exists or not
;
;  Input: Name of the ODBC entry
; Output: TRUE, FALSE
;
; Usage
;
;    Push "MyODBCEntry"
;    Call ODBCEntryExists
;    Pop "$1"
;    MessageBox MB_OK|MB_ICONINFORMATION "ODBC entry 'MyODBCEntry' exists: $1"
;
 
!macro ODBCEntryExistsMacro
 
  ; Clear all errors at the beginning
  ClearErrors
  ; Pop the name of the ODBC entry from the stack
  Exch $R0
 
  IfErrors InvalidParameter CheckODBCEntry
  InvalidParameter:
    MessageBox MB_OK|MB_ICONEXCLAMATION "ODBCEntryExists: Please push the name of the ODBC entry first."
    StrCpy $R0 "FALSE"
    Goto Done
  CheckODBCEntry:
    ClearErrors
    ReadRegStr $R0 HKEY_LOCAL_MACHINE "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" "$R0"
    IfErrors NotFound Found
    NotFound:
      StrCpy $R0 "FALSE"
      Goto Done
    Found:
      StrCpy $R0 "TRUE"
      Goto Done
  Done:
 
  Exch $R0
 
!macroend
 
Function ODBCEntryExists
  !insertmacro ODBCEntryExistsMacro
FunctionEnd
 
Function un.ODBCEntryExists
  !insertmacro ODBCEntryExistsMacro
FunctionEnd

Page author: preisl