Microsoft SQL используя pyodb c, хранить переменные из таблицы базы данных? - PullRequest
1 голос
/ 27 апреля 2020

Контекст: У меня есть большой проект, в котором пользователь вводит свое имя, а затем в конце сеанса его имени присваивается оценка с использованием метода INSERT INTO. Обратите внимание, что я использую PyGame для всего проекта, если это повлияет на решение.

Вопрос: Мне нужен способ, возможно, с использованием функции, вызываемой в конце сеанс, чтобы взять первые 5 баллов (например, таблицу лидеров), которые взяты из таблицы баллов, и сохранить их в переменной (возможно, в словаре?), и тогда я мог бы отобразить эти баллы пользователю. Что вы можете использовать в pyodb c, чтобы взять переменные и сохранить их в переменной?

Дополнительная информация и код:

Вот моя функция для сохранения переменные в базе данных:

def TableScore(self):
        conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=[Redacted]\[Redacted];'
                      'Database=Highscore;'
                      'Trusted_Connection=yes;')

        cursor = conn.cursor()
        cursor.execute('SELECT * FROM Highscore.dbo.Highscores')

        cursor.execute('''
                INSERT INTO Highscore.dbo.Highscores (Name, Scores)
                VALUES
                (?,?)
                 ''',(self.PlayerName, self.score)
                 )

        conn.commit()

А вот функция, которую я буду использовать для отображения результатов и вызова функции, которая сохраняет результаты в базе данных:

def show_go_screen(self):
        #Welcome screen
        if not self.running:
            return
        self.image = pg.image.load('WallPaper.png')
        self.screen.blit(self.image, (0, 0))
        self.draw_text("You died!", 48, White, Width /2, Height / 4)
        self.draw_text("Score: " + str(self.score), 22, White, Width / 2, Height / 2)
        self.draw_text("Press any key to restart", 22, White, Width / 2, Height * 3/4)
        if self.score > self.highscore:
            self.highscore = self.score
            self.draw_text("New Highscore!", 22, White, Width / 2, Height / 2 + 40)
            with open(path.join(self.dir, HS_File), 'w') as f:
                f.write(str(self.score))
            self.TableScore() #Calls saving to database function

        else:
            self.draw_text("Highscore: " + str(self.highscore), 22, White, Width / 2, Height / 2 + 40)
        pg.display.flip()
        self.wait_for_key() #Waiting for user input to start new game.

Я надеюсь, что это достаточно информации, если вам нужно больше, чтобы ответить, я буду рад держать это в курсе!

Спасибо!

...