|
""" 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() |
|
|