mirror of https://github.com/python/cpython
34 lines
791 B
Python
34 lines
791 B
Python
# A minimal SQLite shell for experiments
|
|
|
|
import sqlite3
|
|
|
|
con = sqlite3.connect(":memory:")
|
|
con.isolation_level = None
|
|
cur = con.cursor()
|
|
|
|
buffer = ""
|
|
|
|
print("Enter your SQL commands to execute in sqlite3.")
|
|
print("Enter a blank line to exit.")
|
|
|
|
while True:
|
|
line = input()
|
|
if line == "":
|
|
break
|
|
buffer += line
|
|
if sqlite3.complete_statement(buffer):
|
|
try:
|
|
buffer = buffer.strip()
|
|
cur.execute(buffer)
|
|
|
|
if buffer.lstrip().upper().startswith("SELECT"):
|
|
print(cur.fetchall())
|
|
except sqlite3.Error as e:
|
|
err_msg = str(e)
|
|
err_code = e.sqlite_errorcode
|
|
err_name = e.sqlite_errorname
|
|
print(f"{err_name} ({err_code}): {err_msg}")
|
|
buffer = ""
|
|
|
|
con.close()
|