""" db_print.py -- a simple demo for ADO database reads.""" import sys import adodbapi.ado_consts as adc cmd_args = ("filename", "table_name") if "help" in sys.argv: print("possible settings keywords are:", cmd_args) sys.exit() kw_args = {} # pick up filename and proxy address from command line (optionally) for arg in sys.argv: s = arg.split("=") if len(s) > 1: if s[0] in cmd_args: kw_args[s[0]] = s[1] kw_args.setdefault( "filename", "test.mdb" ) # assumes server is running from examples folder kw_args.setdefault("table_name", "Products") # the name of the demo table # the server needs to select the provider based on his Python installation provider_switch = ["provider", "Microsoft.ACE.OLEDB.12.0", "Microsoft.Jet.OLEDB.4.0"] # ------------------------ START HERE ------------------------------------- # create the connection constr = "Provider=%(provider)s;Data Source=%(filename)s" import adodbapi as db con = db.connect(constr, kw_args, macro_is64bit=provider_switch) if kw_args["table_name"] == "?": print("The tables in your database are:") for name in con.get_table_names(): print(name) else: # make a cursor on the connection with con.cursor() as c: # run an SQL statement on the cursor sql = "select * from %s" % kw_args["table_name"] print('performing query="%s"' % sql) c.execute(sql) # check the results print( 'result rowcount shows as= %d. (Note: -1 means "not known")' % (c.rowcount,) ) print("") print("result data description is:") print(" NAME Type DispSize IntrnlSz Prec Scale Null?") for d in c.description: print( ("%16s %-12s %8s %8d %4d %5d %s") % (d[0], adc.adTypeNames[d[1]], d[2], d[3], d[4], d[5], bool(d[6])) ) print("") print("str() of first five records are...") # get the results db = c.fetchmany(5) # print them for rec in db: print(rec) print("") print("repr() of next row is...") print(repr(c.fetchone())) print("") con.close()