对于数据库的其他操作,如数据库更新、修改、查找等用法同上。
参数3 sqlite3_callback是自定义的回调函数,对执行结果的每一行都执行一次这个函数。
参数4 void *是调用者所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里,如果不需要传递指针给回调函数,可以填NULL。
参数5 char ** errmsg是错误信息。sqlite3里面有很多固定的错误信息。执行sqlite3_exec之后,如果执行失败则可以查阅这个指针,即可知道执行过程中错误发生的位置。
3.3 串口同sqlite3通信测试与分析
为了验证sqlite3数据库在嵌入式Linux[3-4]终端下的执行效率和稳定性,为此做了一个简单的测试实验:通过上位机程序向嵌入式Linux终端的串口定时发送字符串;嵌入式Linux终端接收到字符串便立即写入到下位机的数据库中。自后查看数据中的数据,看看有没有遗漏和误码。上位机的程序使用VC6.0开发,整个程序界面只设了一个按键,按下按键,上位机就向嵌入式Linux终端不停地发送字符串数据,按键响应程序设计如下:
void CSendDlg::OnButton_Click()
{
state=1;
while(1)
{
str.Format(“第%3d条记录”,state);//格式化字符串格式
m_Port.WriteToPort(str,str.GetLength());//向串口发送字符串
state++;
Sleep(100);//延时100 ms
}
可见程序是个定时100 ms便发送一条字符串的循环,而且发送的每一条字符串事先通过str.Format格式化为固定长度,本例中是11 B。按下按键后发送的第一条字符串为:“第1条记录”,每发送一条字符串里面的数字加“1”,这样写到数据库中就可以很清楚地查看有没有遗漏和误码,而且可以通过修改Sleep函数的延时参数检测出嵌入式Linux终端下sqlite3数据库操作的速度。