我需要在MySQL(InnoDB)DB中将一些TIMESTAMP字段转换为INT.我意识到将TIMESTAMP转换为INT是不寻常的,但我们仍然需要这样做:)
看起来很简单,但有一些时区和夏令时错误.
我有一个脚本,每列生成我的SQL代码.例如,它生成:
ALTER TABLE alarmLog ADD COLUMN started_tmp INT UNSIGNED;
UPDATE alarmLog SET started_tmp = UNIX_TIMESTAMP(started);
ALTER TABLE alarmLog DROP started;
alter TABLE alarmLog CHANGE started_tmp started INT UNSIGNED NULL DEFAULT 0;
Run Code Online (Sandbox Code Playgroud)
如果我比较使用前后数据select FROM_UNIXTIME(1291788036);,结果看起来不错.
然后,我们的想法是将所有客户端软件更改为转换为UTC,并在存储时使用该INT.检索时,该INT将转换为当前时区.
但后来文档警告我这个场景(CET中的夏令时):
mysql> SELECT UNIX_TIMESTAMP('2005-03-27 02:00:00');
+---------------------------------------+
| UNIX_TIMESTAMP('2005-03-27 02:00:00') |
+---------------------------------------+
| 1111885200 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT UNIX_TIMESTAMP('2005-03-27 03:00:00');
+---------------------------------------+
| UNIX_TIMESTAMP('2005-03-27 03:00:00') |
+---------------------------------------+
| 1111885200 |
+---------------------------------------+
1 row in set (0.00 …Run Code Online (Sandbox Code Playgroud) 我有一个测试项目,我需要加载一个XLSX文件.为此,我添加了一个带有copy-always的文件,以便它最终出现在build目录中,但以下所有内容都返回了错误的路径:
System.Reflection.Assembly.GetAssembly(typeof(testclass)).Location;AppDomain.CurrentDomain.BaseDirectoryDirectory.GetCurrentDirectory();他们都给了我:
"C:\\Users\\username\\Documents\\visual-studio-projecten\\projectname\\TestResults\\username_ICT003 2012-06-20 12_07_06\\Out"
我需要
"C:\\Users\\username\\Documents\\visual-studio-projecten\\projectname\\TestProject\\bin\\Debug\\SupportFiles\\"
我该如何做到这一点?
如何将第三方.o和.h文件添加到QtCreator中的Qt C++项目?我想从John The Ripper中添加一些已编译的.o文件到我的probject(忽略它的非跨平台性).作为一个测试,一个小的C程序(在QtCreator之外)编写并将其链接common.o到MD5_std.o并且它工作正常; 我可以这样做gcc -o runme common.o MD5_std.o simpleprogram.c,但是使用QtCreator,似乎没有任何效果.我一直得到未定义的引用.
我尝试将其添加到.pro文件中:
LIBS += "$$_PRO_FILE_PWD_/common.o" "$$_PRO_FILE_PWD_/MD5_std.o"
Run Code Online (Sandbox Code Playgroud)
还有这个:
LIBS += /full/path/to/common.o /full/path/to/MD5_std.o
Run Code Online (Sandbox Code Playgroud)
我还尝试INCLUDEPATH在.pro文件中设置和添加.o文件作为"其他文件"和"源",但无论我做什么,对.o文件中的函数的调用总是会导致未定义的引用.
另外,根据我在互联网上找到的所有建议(这对我们很有用,非常奇怪),我没有找到一种方法将.o文件添加到项目中,以便将它们复制到阴影构建中目录,并从那里链接.我似乎错误地提到了$$_PRO_FILE_PWD_.
BTW:我开始工作的是连接系统库.当我添加-lcrypt到LIBS,包括unistd.h,我可以调用crypt函数就好了.
我对Qt中的线程和事件循环感到困惑.
一个QThread的正常运行exec()在run().但是当你覆盖时run(),就不会有事件循环.
这个(较旧的)doc声明调用deleteLater()在没有事件循环的线程中创建的对象不起作用:
如果没有运行事件循环,则不会将事件传递给对象.例如,如果在线程中创建QTimer对象但从不调用exec(),则QTimer将永远不会发出其timeout()信号.调用deleteLater()也不起作用.(这些限制也适用于主线程.)
但是,请查看以下代码:
class MyObject : public QObject
{
Q_OBJECT
QString content;
public:
MyObject(QObject *parent = 0);
~MyObject();
};
class MyThread : public QThread
{
Q_OBJECT
public:
explicit MyThread(QObject *parent = 0);
void run();
signals:
public slots:
};
MyObject::MyObject(QObject *parent) :
QObject(parent),
content("foobar")
{}
MyObject::~MyObject()
{
// This code is still executed before I close the program. How?
qDebug() << "Destroying MyObject";
}
MyThread::MyThread(QObject *parent) :
QThread(parent) …Run Code Online (Sandbox Code Playgroud)