home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / listdbs.tcl < prev    next >
Text File  |  1996-09-12  |  2KB  |  75 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. # Copyright (c) 1995-1996 by Cayenne Software, Inc.
  4. #
  5. # This software is furnished under a license and may be used only in
  6. # accordance with the terms of such license and with the inclusion of
  7. # the above copyright notice. This software or any other copies thereof
  8. # may not be provided or otherwise made available to any other person.
  9. # No title to and ownership of the software is hereby transferred.
  10. #
  11. # The information in this software is subject to change without notice
  12. # and should not be construed as a commitment by Cayenne Software, Inc.
  13. #
  14. #---------------------------------------------------------------------------
  15. #
  16. #    File        : @(#)listdbs.tcl    /main/titanic/1
  17. #    Author        : topr
  18. #    Original date    : October 1995
  19. #    Description    : List Informix Databases
  20. #
  21. #---------------------------------------------------------------------------
  22. #
  23.  
  24. require subtdbop.tcl
  25.  
  26. proc listDatabases {{dbHost ""}} {
  27.  
  28.     set listSect [TextSection new]
  29.     set outFile [BasicFS::tmpFile]
  30.     set errFile [BasicFS::tmpFile]
  31.  
  32.     $listSect append "DATABASE sysmaster;\n"
  33.     $listSect append "OUTPUT TO $outFile WITHOUT HEADINGS\n"
  34.     $listSect append "SELECT name FROM sysdatabases ORDER BY name;"
  35.  
  36.     set errMsg [executeCommandWithConnect $listSect $dbHost - $errFile 1]
  37.  
  38.     if {$errMsg != ""} {
  39.         set errMsg "Unable to connect Informix sysmaster database\n$errMsg"
  40.         set fileId [open $errFile r]
  41.  
  42.         while {![eof $fileId]} {
  43.         set string [gets $fileId]
  44.         if {$string != ""} {
  45.             set errMsg "$errMsg\n$string"
  46.         }
  47.         }
  48.  
  49.         catch {close $fileId}
  50.         catch {unlink $errFile}
  51.         catch {unlink $outFile}
  52.  
  53.         error $errMsg
  54.     }
  55.  
  56.     unlink $errFile
  57.  
  58.     set fileId [open $outFile r]
  59.     set result ""
  60.  
  61.     while {![eof $fileId]} {
  62.         set line [string trim [gets $fileId]]
  63.  
  64.         if {$line != ""} {
  65.         lappend result $line
  66.         }
  67.     }
  68.  
  69.     close $fileId
  70.  
  71.     unlink $outFile
  72.  
  73.     return $result
  74. }
  75.