小编CL.*_*CL.的帖子

无法在Windows上使用SQLAlchemy和Python 2.7.3连接到内存中的SQLite DB

我试图在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)

python sqlite sqlalchemy

2
推荐指数
1
解决办法
5828
查看次数

SQLITE:不使用auto_increment替换

我有一个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)

有没有人知道如何做到这一点?

sqlite replace unique

2
推荐指数
1
解决办法
1926
查看次数

如何拦截消息:"WM_QUIT || WM_DESTROY || WM_CLOSE"WinAPI

我将此代码用于主循环(我的函数):

    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)

c++ winapi

2
推荐指数
1
解决办法
3275
查看次数

Sqlite3通过PHP转储数据库

我希望能够将整个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'命令的语法示例?

php sqlite

2
推荐指数
1
解决办法
2878
查看次数

如何使用参数插入多行?

我试图使用离子框架在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)

javascript sqlite node.js angularjs ionic-framework

2
推荐指数
2
解决办法
6951
查看次数

SQLite - 获得每个游戏的胜利者(排名超过分区)

我正在为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

sqlite rank greatest-n-per-group partition

2
推荐指数
1
解决办法
2454
查看次数

使用 pcm_s24le 的 ALSA

使用 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 的代码?

alsa audio-player

2
推荐指数
1
解决办法
4225
查看次数

来自SUM的Android"null"

我有一个查询从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)

sqlite android

1
推荐指数
1
解决办法
1394
查看次数

SQLite UPDATE查询未运行

我不知道为什么,但这段代码不起作用(但运行无例外):

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)

所有字段和表名都是正确的.

sqlite android

1
推荐指数
1
解决办法
53
查看次数

Pygame midi 模块初始化失败

在 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 模块吗?有什么解决办法吗?

python midi pygame

1
推荐指数
1
解决办法
1379
查看次数