Операционная ошибка в курсоре при создании функции в SQLite - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь вставить данные в свою базу данных SQLite, все идет нормально, пока я не получу ошибку при создании функции для БД. Отправляет OperationalError at cursor.

Я не смог найти решение своей проблемы.

Код, который я использую:

import sqlite3
from sqlite3 import *

SQL_CREATE_STATEMENT = '''CREATE TABLE password
             (id integer PRIMARY KEY NOT NULL,username text, password text, source text)'''
SQL_INSERT_STATEMENT = '''INSERT INTO password (username, password, source)VALUES({},{},{});'''

DATABASE_PATH = 'home/taha/lessons/projects/passStorage/passDB.db'

DATA = dict()


def create_connection(db_file):
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        return e

def create_table(connection, sql_commands):
    c = connection.cursor()
    c.execute(sql_commands)
    print('done')

def get_input():
    USERNAME = input('username: ')
    PASSWORD = input('password: ')
    SOURCE = input('source: ')
    return USERNAME,PASSWORD,SOURCE

def insert_date(connection, data):
    c = connection.cursor()
    c.execute(SQL_INSERT_STATEMENT.format(data.values))

def main():
    conn = create_connection(DATABASE_PATH)
    create_table(conn, SQL_CREATE_STATEMENT)

    user_info = get_input()
    DATA['username'], DATA['password'], DATA['SOURCE'] = user_info

    insert_date(conn, DATA)

if __name__ == '__main__':
    main()

Я не ожидаю ошибок, но отправляет:

c = connection.cursor()

AttributeError: 'OperationalError' object has no attribute 'cursor'

1 Ответ

0 голосов
/ 08 января 2019
def create_connection(db_file):
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        return e # <-- here you return OperationalError instance

AttributeError: объект «OperationalError» не имеет атрибута «курсор»

Показывает, что OperationalError не имеет атрибута cursor

Добавьте дополнительную логику, которая проверяет соединение здесь.

Я считаю, что суть вашей проблемы - неправильный путь к файлу:

DATABASE_PATH = 'home/taha/lessons/projects/passStorage/passDB.db'

Но я считаю, что должно быть

DATABASE_PATH = '/home/taha/lessons/projects/passStorage/passDB.db'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...