mport sys
import pygame
class AlienInvasion:
def int(self):
pygame.init()
self.screen = pygame.display.set_mode((1200,800))
pygame.display.set_caption("Alien Invasion")
def run_game(self):
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
pygame.display.flip()
if name == 'main':
pygame.init()
ai = AlienInvasion()
ai.run_game()
D:\zuojunyun\alien_invasion\venv\Scripts\python.exe D:\zuojunyun\alien_invasion\alien_invasion.py
pygame 2.5.2 (SDL 2.28.3, Python 3.11.2)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "D:\zuojunyun\alien_invasion\alien_invasion.py", line 19, in <module>
ai.run_game()
File "D:\zuojunyun\alien_invasion\alien_invasion.py", line 14, in run_game
pygame.display.flip()
pygame.error: Display mode not set
进程已结束,退出代码为 1
这个错误消息指出,由于涉及到 BLOB(Binary Large Object)值,不能执行基于查询的插入或更新操作。在 SQL Server 中,这通常是由于数据类型不匹配或不支持导致的。
在你的情况下,似乎是由于 SQLite 数据库表中的某些列具有 BLOB 数据类型,而在执行插入操作时引发了错误。
以下是一些可能的解决方法:
检查数据类型匹配性: 确保你插入的值与目标表的列数据类型匹配。如果表中有 BLOB 列,确保插入的数据不包含二进制大对象。
sql
Copy code
INSERT OPENQUERY(BK, 'SELECT name FROM s_category_info ')
VALUES ('李四')
指定列名: 在插入语句中,明确指定要插入数据的列。这有助于确保你的值与目标列的顺序和类型匹配。
sql
Copy code
INSERT OPENQUERY(BK, 'SELECT name FROM s_category_info ')
(name)
VALUES ('李四')
避免 BLOB 列: 如果可能,避免在插入操作中使用 BLOB 列,或者确保你插入的数据不包含二进制大对象。
更新 OLE DB 提供程序: 确保你使用的 OLE DB 提供程序是最新版本,以支持更多数据类型和特性。
尝试这些方法,并根据具体情况调整你的插入语句。如果问题仍然存在,可能需要查看 SQLite 表的结构,特别是与 BLOB 数据类型相关的列,并确保插入的数据不会引发不兼容性。