Example #1
0
//提供给lua的变量注册接口
int myvar_register(lua_State* L)
{
	const char *id = luaL_checkstring(L,1);
	double defaultval = luaL_checknumber(L,2);
	bool persist = luaL_checknumber(L,3);
	double *p = (double*)malloc(sizeof(double));
	*p = defaultval;

	//产生内存变量
	struct varDouble t;
	double val= 0;
	
	//id是str
	t.id = id;
	
	t.p = p;

	//persist false普通变量 true 保持变量
	if(persist != 0)
	{

		//在sql中查找是否有变量,如果没有则产生条目,否者将变量值读入到内存变量
		if(mydb.GetValue(id,val))
		{
			*p = val;
			t.sqlval = val;
		}
		else
		{
			//printf("newval\n");
			mydb.NewId(id,*p,"");
			t.sqlval = *p;
		}
	}
	else
	{
		t.sqlval = *p;
	}

	//内存列表
	varLuavarlist.append(t);
	lua_pushnumber(L,*p);
	return 1;
}
Example #2
0
void var_register(const  QString& id,double* p,bool persist)
{
	//产生内存变量
	struct varDouble t;
	double val= 0;
	
	//id是str
	t.id = id;
	
	t.p = p;

	//persist false普通变量 true 保持变量
	if(persist)
	{

		//在sql中查找是否有变量,如果没有则产生条目,否者将变量值读入到内存变量
		if(mydb.GetValue(id,val))
		{
			*p = val;
			t.sqlval = val;
		}
		else
		{
			printf("newval\n");
			mydb.NewId(id,*p,"");
			t.sqlval = *p;
		}
	}
	else
	{
		t.sqlval = *p;
	}

	//内存列表
	varDoublelist.append(t);

}