#!/usr/bin/python # TITLE: dbtrainer2 # WRITTEN BY: Bradley Stec, July 1999 # RuleSpace, Inc. # SUPPORTS: WebOps Database Interface Trainer Script # PURPOSE: This script is a code and output example of how to use the # MySQLdb API to communicate to a database and perform basic # SQL command language requests. # FUNCTION: Both by executing the script and by reading the source code, # a programmer should be able to get a grasp on how the interface # works and may borrow code for their own script projects. # REQUIREMENTS: This script requires the access to the webops module, and that a # database named "test" be installed in the webops specified # database server. # # CHANGES: 7/99 Initial Version import sys import webops import traceback sys.stderr = sys.stdout # Set Up Page Layout print "content-type: text/html" print print "\n" print "
\n" print "RuleSpace, Inc. WebOps Database Interface Trainer -- Part 2" print "By viewing the CGI script which presents the information below you'll be able to see how the database interface and API works within the WebOps scripting environment.
" print "
" traceback.print_exc() sys.exit() # A LITTLE BONUS INFORMATION FROM THE API # The API can provide some information about the connection and server. Note that these functions are # making use of the "db" object which is a sub-class of the WebOpsDB object. The "db" object bypasses the "wrapper" # level of the MySQLdb interface and speaks directly to the C coded _mysqlmodule.so, therefore it is not recommended # that you use this method frequently in timing-sensitive script applications. print "CONNECTED TO\n" print "\n"
" print " server ", WebOpsDB.db.get_host_info(), "
" print " running mySQL server v", WebOpsDB.db.get_server_info(), "
" print " current status: ",WebOpsDB.db.stat(), "" print "
" # CREATE YOUR PERSONAL CONNECTION TO THE "RESULTS" WITHIN THE CONNECTION OBJECT # We haven't actually queried anything yet, so don't get confused, we're just preparing for it. try: cursor = WebOpsDB.cursor() except: print "\n\n" traceback.print_exc() sys.exit() # EXAMPLE: UPDATING A RECORD # This example modifies an existing field/column with new information using the UPDATE command. It is recommended that # you use this method over a REPLACE command, since REPLACE uses INSERT and requires additional processing for file locking. try: cursor.execute("UPDATE TEAM SET TEAM.FAV_COLOR='green',TEAM.LAST_DATE=NOW() WHERE TEAM.FIRST_NAME='Frederick' AND TEAM.LAST_NAME='Clueless';") except: print "\n\n" traceback.print_exc() sys.exit() # REQUERY TO SEE RESULTS try: cursor.execute("SELECT * FROM TEAM;") resultSet = cursor.fetchall() except: print "\n\n" traceback.print_exc() sys.exit() print "EXAMPLES OF USING THE UPDATE SQL COMMAND." print "MODIFYING AN EXISTING RECORD (Fred changes his favorite color!)
" print "" print "" print "" print "
" for cursorFieldname in cursor.description: print " " for cursorRecord in resultSet: print "" print " " +cursorFieldname[0]+ " " for cursorField in cursorRecord: print " " print "" print cursorField print " " print "" # CLOSING THE DATABASE OBJECT try: WebOpsDB.close() except: print "\n\n
" traceback.print_exc() sys.exit() # CONTINUED IN DBTRAINER3 # To learn more about deleting records, and performing other SQL functions review # dbtrainer3. # END YOUR HTML PAGE print "