小编Chr*_*ris的帖子

Qt/QSqlQuery:绑定到BLOB字段时,二进制数据被解释为字符串

我正在从文件中读取二进制数据并尝试将其存储在MySql数据库的LONGBLOB字段中.
我正在使用Python和PySide.

我的问题是,二进制数据被解释为字符串,这意味着当数据中出现换行符时数据被截断.

这似乎是一个Python或PySide问题,因为如果我在MySql提示中手动添加数据,它可以很好地工作.
编辑:我只是用普通的Qt用C++尝试过,我在那里遇到了同样的问题.

我的表定义如下:
CREATE TABLE blobtest (id INT PRIMARY KEY AUTO_INCREMENT, data LONGBLOB NOT NULL;

下面是一个复制者.

from PySide.QtSql import QSqlDatabase, QSqlQuery, QSql

def testit():
    db = QSqlDatabase.addDatabase("QMYSQL")
    db.setHostName("localhost")
    db.setDatabaseName("testdb")
    db.setUserName("user")
    db.setPassword("pass")
    db.open()

    query = QSqlQuery(db)
    data = "start\n\0\n\0\n\0end"
    query.prepare("INSERT INTO blobtest (data) VALUES(:data)")
    query.bindValue(":data", data, QSql.In | QSql.Binary)
    query.exec_()

    db.close()

###############################################################################

if __name__ == "__main__":
    testit()
Run Code Online (Sandbox Code Playgroud)

编辑:这里是c ++变体中的相同复制器.我正在使用QByteArray来保存数据,但它仍然被截断

#include <QtSql/QtSql>
#include <QtCore/QByteArray>

int main(int argc, char* argv[]) {
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("testdb");
    db.setUserName("user"); …
Run Code Online (Sandbox Code Playgroud)

python mysql qt blob pyside

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

计算C预处理器中两个代码位置之间的行数

我想使用C预处理器来计算两个代码位置之间的行数.基本想法是这样的:

#define START __LINE__
static char* string_list[] = {
    "some string",
    "another string",
    ...
    "last string"
};
#define END __LINE__
#if END - START > 42
    #error Too many entries
#endif
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为在这种情况下START,END仅仅是对__LINE__宏的重新定义.
我正在玩###运算符,但我无法让预处理器进行评估START,END而预处理器正在运行.

我的问题是:这有可能吗?

不能选择在运行时检查数组的大小.
预先感谢任何提示或想法!

c c-preprocessor

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

NSIS:如何在安装过程中手动提取文件

我有一个相当大的项目,其安装程序是使用NSIS编写的.
我的问题是,我不能简单地将所有文件添加到安装程序文件中,因为它将超过2GB限制.
我也不能将我的大文件留在DVD上的扁平结构中,只需使用该CopyFiles命令复制它们,因为目录结构的总大小将超过4.7GB.

所以我现在要做的是将我的大文件放在DVD上的扁平但压缩的结构中,并在安装过程中手动将它们提取到安装目录.DVD上的结构如下所示:

/ 
+--+ data
|  +-- <compressed files>
+--setup.exe 

有没有方便的方法呢?

非常感谢任何想法.

compression installer nsis

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

金字塔:路径模式中的默认值

我想知道:
是否有可能在路由配置模式中提供默认值?
例如:我有一个视图,显示绑定到数据集的(可能很大)文件列表.我想在页面中拆分视图,每个页面显示100个文件.当省略url模式中的页面部分时,我想要显示第一页.
所以我希望有类似的东西:

config.add_route('show_files', '/show_files/{datasetid}/{page=1})
Run Code Online (Sandbox Code Playgroud)

那是合理的努力还是可行的替代方案?我没有在金字塔文档中的路由语法描述中找到任何内容.

非常感谢!

python url routes pyramid

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

标签 统计

python ×2

blob ×1

c ×1

c-preprocessor ×1

compression ×1

installer ×1

mysql ×1

nsis ×1

pyramid ×1

pyside ×1

qt ×1

routes ×1

url ×1