dbd/sqlite3/statement.c

changeset 9
06eb2850703f
parent 5
e66b88e013ca
child 10
3aa8a37a3dd8
equal deleted inserted replaced
8:0b805fda1c91 9:06eb2850703f
90 } 90 }
91 91
92 for (p = 2; p <= n; p++) { 92 for (p = 2; p <= n; p++) {
93 int i = p - 1; 93 int i = p - 1;
94 94
95 if (lua_isnil(L, p)) { 95 int type = lua_type(L, p);
96 if (sqlite3_bind_null(statement->stmt, i) != SQLITE_OK) { 96
97 err = 1; 97 switch(type) {
98 } 98 case LUA_TNIL:
99 } else if (lua_isnumber(L, p)) { 99 err = sqlite3_bind_null(statement->stmt, i) != SQLITE_OK;
100 if (sqlite3_bind_double(statement->stmt, i, luaL_checknumber(L, p)) != SQLITE_OK) { 100 break;
101 err = 1; 101 case LUA_TNUMBER:
102 } 102 err = sqlite3_bind_double(statement->stmt, i, lua_tonumber(L, p)) != SQLITE_OK;
103 } else if (lua_isstring(L, p)) { 103 break;
104 if (sqlite3_bind_text(statement->stmt, i, luaL_checkstring(L, p), -1, SQLITE_STATIC) != SQLITE_OK) { 104 case LUA_TSTRING:
105 err = 1; 105 err = sqlite3_bind_text(statement->stmt, i, lua_tostring(L, p), -1, SQLITE_STATIC) != SQLITE_OK;
106 } 106 break;
107 } 107 case LUA_TBOOLEAN:
108 err = sqlite3_bind_int(statement->stmt, i, lua_toboolean(L, p)) != SQLITE_OK;
109 break;
110 default:
111 /*
112 * Unknown/unsupported value type
113 */
114 err = 1;
115 }
116
108 117
109 if (err) 118 if (err)
110 break; 119 break;
111 } 120 }
112 121

mercurial