//#include "initqtouchvar.h"
#include <math.h>
#include <stdio.h>
#include <stdarg.h>
#include <time.h>
#include <stdio.h>
#include "sqlite3.h"
#include "script.h"
#define MAX_LINE 1024
int callback(void *data, int argc, char **argv, char **colName);
int write_log (FILE* pFile, const char *format, ...) {
va_list arg;
int done;
va_start (arg, format);
//done = vfprintf (stdout, format, arg);
time_t time_log = time(NULL);
struct tm* tm_log = localtime(&time_log);
fprintf(pFile, "%04d-%02d-%02d %02d:%02d:%02d ", tm_log->tm_year + 1900, tm_log->tm_mon + 1, tm_log->tm_mday, tm_log->tm_hour, tm_log->tm_min, tm_log->tm_sec);
done = vfprintf (pFile, format, arg);
va_end (arg);
fflush(pFile);
return done;
}
/*
int main( )
{
//初始化
InitQTouchVar();
int sread[20];
char buf[1024];
FILE *fp;
int len;
int z=0;
if((fp = fopen("test.txt","r")) == NULL)
{
perror("fail to read");
exit (1) ;
}
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf);
buf[len-1] = '\0';
printf("%s %d \n",buf,len - 1);
//int kread=atoi(buf);
sread[z]=atoi(buf);
printf("data:%d \n",sread[z]);
z++;
}
while (1) {
//自定义逻辑
//通过变量名的指针可以访问变量对象的读写,如:
//double avalue = var0->dValue;
//var0->dValue = 123;
//通过变量名+Index的方式可以访问变量在数据库中的id;如:var0Index;注意变量的
//id请不要在外部进行修改,初始化的时候已经完成,外部可以应用其值
//id为变量在实时数据库中的索引,也可以通过实时数据库工具查看,其中的内存编号就是对应的id
//对于组变量的访问方式:组名->变量名.值,如:
//zone1.var0->dValue = 123;
//double avalue = zone1.var0->dValue;
//为了能够正确的在C中识别组名,变量名,请注意在命名的时候不要出现C中的关键字或者不识别的命名方式
//下发控制指令的操作
while (GetKcFlag(0)){
//在系统没有正在下发指令的时候才可以进行新的指令操作
//调用下发指令,id为变量在实时数据库中的索引,dada为下发的指令内容,以short为基准(一个modbus寄存器)
//比如写一个modbus寄存器数据123,那么data为“123”,如果连续写多个寄存器的值的话,按照“123 123”来进行,中间按照空格隔开
//SetKcData(0, int id,char *data);
//SetKcFlag(0,1);//通知系统有指令下发
}
waitForMillisec(200);
}
return 0;
}
*/
int main()
{
sqlite3 *db;
printf("ssss");
if (sqlite3_open("DBFile.db", &db))
{
printf("Can't open database: %s\n", sqlite3_errmsg(db));
exit(0);
}
else
{
char *errMsg;
double svalue=2.234;
//char svalueChar[20];
//sprintf(svalueChar,"%2f",svalue);
char *sql_ = "DROP TABLE IF EXISTS STUDENT;"
"CREATE TABLE STUDENT(rollNum INT, Name TEXT, Section varchar );"
"INSERT INTO STUDENT VALUES(1, 'Arvind', 'A');"
"INSERT INTO STUDENT VALUES(2, 'Amit', 'C');"
"INSERT INTO STUDENT VALUES(3, 'Shivang', 'A');"
"INSERT INTO STUDENT VALUES(4, 'RAGHU', 'A');"
"INSERT INTO STUDENT VALUES(5, 'SACHIN', 'C');"
"INSERT INTO STUDENT VALUES(6, 'ssss', 'B');";
//int rec = sqlite3_exec(db, sql_, 0, 0, &errMsg);
//
printf("Opened database successfully\n");
char sql[100] = "select * from STUDENT";
sprintf(sql,"INSERT INTO STUDENT VALUES(6, %f, 'B');",svalue);
const char* data = "Callback function called";
if(SQLITE_OK == sqlite3_exec(db, sql, callback, (void*)data, &errMsg))
{
printf("Operation done successfully\n");
}
else
{
printf("SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
}
}
sqlite3_close(db);
return 0;
}
int callback(void *data, int argc, char **argv, char **colName)
{
int i;
fprintf(stderr, "%s:\n", (const char*)data);
for(i=0; i<argc; i++)
{
printf("%s = %s\n", colName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}