| """ 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 = {}
|
| 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"
|
| )
|
| kw_args.setdefault("table_name", "Products")
|
|
|
|
|
| provider_switch = ["provider", "Microsoft.ACE.OLEDB.12.0", "Microsoft.Jet.OLEDB.4.0"]
|
|
|
|
|
|
|
| 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:
|
|
|
| with con.cursor() as c:
|
|
|
| sql = "select * from %s" % kw_args["table_name"]
|
| print('performing query="%s"' % sql)
|
| c.execute(sql)
|
|
|
|
|
| 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...")
|
|
|
|
|
| db = c.fetchmany(5)
|
|
|
|
|
| for rec in db:
|
| print(rec)
|
|
|
| print("")
|
| print("repr() of next row is...")
|
| print(repr(c.fetchone()))
|
| print("")
|
| con.close()
|
|
|