■ SQlite3 명령줄 실행 프로그램을 만드는 방법을 보여준다.
▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import re import sqlite3 import sys def PrintIntroduction(): print("pysqlite는 명령줄 프로그램입니다.") print("명령어를 알고 싶으시면 \".도움말;\"를 입력해 주시기 바랍니다.") print("SQL 구문은 ';'으로 끝나야 합니다.") def PrintHelp(): print(".덤프\t\t데이터베이스의 내용을 출력합니다.") def DumpDatabase(connection, filePath = None): if filePath != None: f = open(filePath, "w") else: f = sys.stdout for line in connection.iterdump(): f.write("{0}\n".format(line)) if f != sys.stdout: f.close() if len(sys.argv) == 2: path = sys.argv[1] else: path = ":memory:" connection = sqlite3.connect(path) connection.isolation_level = None cursor = connection.cursor() buffer = "" PrintIntroduction() while True: line = input("pysqlite>> ") if buffer == "" and line == "": break buffer += line if sqlite3.complete_statement(buffer): buffer = buffer.strip() if buffer[0]==".": command = re.sub("[ ;]", " ", buffer).split() if command[0] == ".도움말": PrintHelp() elif command[0] == ".덤프": if len(command) == 2: DumpDatabase(connection, command[1]) else: DumpDatabase(connection) else: try: buffer = buffer.strip() cursor.execute(buffer) if buffer.lstrip().upper().startswith("SELECT"): print(cursor.fetchall()) except sqlite3.Error as error: print("에러 : ", error.args[0]) else: print("구문이 성공적으로 수행되었습니다.") buffer="" connection.close() print("프로그램을 종료합니다.") |