我试图在Windows上使用SQLAlchemy与Python 2.7.3一起使用内存中的SQLite数据库.我可以连接到引擎,但是当我尝试执行第二个语句时,我收到以下错误:
>>> engine=create_engine('sqlite:///memory:',echo=True)
>>> engine.execute("select 1").scalar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 2445, in execute
connection = self.contextual_connect(close_with_result=True)
File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 2489, in contextual_connect
self.pool.connect(),
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 236, in connect
return _ConnectionFairy(self).checkout()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 401, in __init__
rec = self._connection_record = pool._do_get()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 822, in _do_get
return self._create_connection()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 189, in _create_connection
return _ConnectionRecord(self)
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 282, in __init__
self.connection = self.__connect()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", …Run Code Online (Sandbox Code Playgroud) 我有一个sqlite表:例如
CREATE TABLE TEST (id integer primary key, number integer unique, name text);
Run Code Online (Sandbox Code Playgroud)
但是,我需要在更新时不自动增加id字段来进行REPLACE.
例如:表是空的
REPLACE INTO TEST (null, 23, 'Bill');
REPLACE INTO TEST (null, 52, 'Jack');
Run Code Online (Sandbox Code Playgroud)
当我执行查询时,SELECT * FROM TEST;我得到......
1|23|Bill
2|52|Jack
Run Code Online (Sandbox Code Playgroud)
如果我做...
REPLACE INTO TEST VALUES (null, 52, 'John');
Run Code Online (Sandbox Code Playgroud)
从SELECT * FROM TEST; 我得到的查询..
1|23|Bill
3|52|John
Run Code Online (Sandbox Code Playgroud)
但是我需要...
1|23|Bill
2|52|John
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何做到这一点?
我将此代码用于主循环(我的函数):
while (running)
{
if(is_close)
{
Log().push_log("close", "message close!", logInfo);
running = active = false;
break;
}
while (PeekMessage(&msg, g_hWnd, 0, 0, PM_REMOVE))
{
std::cout << "Wnd: " << msg.message << std::endl;
if (msg.message == WM_QUIT || msg.message == WM_DESTROY || msg.message == WM_CLOSE)
{
MessageBox(0, "Hello, World", "Hello", MB_OK);
running = false;
}
// TranslateMessage(&msg);
DispatchMessage(&msg);
}
if (running && active)
render.DrawObject(g_hDC);
}
Run Code Online (Sandbox Code Playgroud)
那么,我使用WndProc:
LRESULT CALLBACK GLWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
std::cout << "Wnd Proc: …Run Code Online (Sandbox Code Playgroud) 我希望能够将整个sqlite数据库转储到文件(database.sql)中,以便将其用作备份。问题在于PHP中的exec()似乎无法正确运行“ .dump”命令,因为它仅给出“ COMMIT;”。结果,而不是全文:
$db = new SQLite3('checks_db.db');
$results=$db->exec('.dump');
$content=$results->fetchArray();
Run Code Online (Sandbox Code Playgroud)
如果我从sqlite3运行它,它将为模式和数据提供插入指令。也许我还应该提到该数据库具有777权限。谁能在php-sqlite3中写出'.dump'命令的语法示例?
我试图使用离子框架在SQLite中插入多行.单排插入工作正常.
即使我跑了
INSERT INTO categories (category_id, category_name,category_type) VALUES (1,"test",1),(2,"test again", 2);
Run Code Online (Sandbox Code Playgroud)
这也很好.但是当我尝试创建一个动态字符串时,它给出了错误"无法准备语句(1接近"?":语法错误)".
.success((function (result) {
var query = "INSERT INTO categories (category_id, category_name,category_type) VALUES ?";
var data = [];
result.forEach(function (category) {
data.push([category.id, category.category_name, category.category_type]);
});
$cordovaSQLite.execute(db, query,[data]).then(function (res) {
console.log("inserted");
}, function (err) {
console.dir(err);
});
Run Code Online (Sandbox Code Playgroud) 我正在为Carcassonne创建一个分数跟踪应用程序.我想获得每场比赛的冠军.
我已经在MS-SQL中工作,现在我正在尝试将db转换为SQLite.
架构
http://sqlfiddle.com/#!7/e8340
MS-SQL
CREATE VIEW vTopScorePerGame AS
WITH ranked AS (
SELECT RANK() OVER (PARTITION BY [GameID] ORDER BY TotalScore DESC) AS Position,
PlayerID,
PlayerName,
TotalScore,
[GameID]
FROM vScore
)
SELECT [GameID],
PlayerID,
PlayerName AS Winner,
TotalScore
FROM ranked
WHERE ranked.Position = 1
Run Code Online (Sandbox Code Playgroud)
当我在SQLFiddle或SQLiteBrowser中尝试时,我收到以下错误:
near "(": syntax error:
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?
功能
与
https://www.sqlite.org/lang_with.html
COALESCE
https://www.sqlite.org/lang_corefunc.html
不受支持的
http://www2.sqlite.org/cvstrac/wiki?p=UnsupportedSqlAnalyticalFunctions
使用 Linux Mint 17.1 和 ALSA。我有两个产生相同声音的 wav 文件:一个使用 pcm_s16le,另一个使用 pcm_s24le。每个图腾/视频都能正确播放。我设置硬件参数并使用 pcm_s16le 播放的代码工作正常。但是,当我尝试调整这些参数以适应 pcm_s24le 时,如下所示:
snd_pcm_hw_params_set_format(audioHandle, audioParams, SND_PCM_FORMAT_S24_LE);
Run Code Online (Sandbox Code Playgroud)
[我只是用“SND_PCM_FORMAT_S24LE”替换“SND_PCM_FORMAT_S16_LE”]。对 snd_pcm_writei 的调用是
snd_pcm_writei(m_audioHandle, *m_pAudioFrameData, *m_pAudioFrameSize / (m_nChannels * m_bitsPerSample / 8);
Run Code Online (Sandbox Code Playgroud)
我听到的大部分是垃圾声音(嘶嘶声、断断续续的声音),但带有一丝正确的声音。
本质上我的问题是,如何将适用于 SND_PCM_FORMAT_S16_LE 的代码转换为适用于 SND_PCM_FORMAT_S24_LE 的代码?
我有一个查询从2个表中获取数据.它可以工作,但是如果没有值,则两个SUM返回NULL.我怎样才能得到零呢?
SELECT SUM(g.field1),
SUM(g.field2),
c._id,
c.field_1,
c.field_3
FROM Table1 g
JOIN Tabel2 c
WHERE ( c.field_1 = g.field5 )
Run Code Online (Sandbox Code Playgroud) 我不知道为什么,但这段代码不起作用(但运行无例外):
try {
db.rawQuery(UPDATE_ALL_REMINDERS_AND_SET_METHOD_NONE, null);
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
UPDATE_ALL_REMINDERS_AND_SET_METHOD_NONE是:
UPDATE dn_reminders SET method = 0
Run Code Online (Sandbox Code Playgroud)
所有字段和表名都是正确的.
在 Windows 7 下工作。我在 Python 3.6 上导入了 pygame 1.9.3 以使用 midi 模块。
以下几行:
import pygame
pygame.midi.init()
Run Code Online (Sandbox Code Playgroud)
引发编译器错误:“模块 pygame 没有属性 midi”
尝试另一个像“mixer”这样的模块似乎可行。
最新的 pygame 库中不存在 midi 模块吗?有什么解决办法吗?