Fixed issue #13 (binding ints from 128 to 255 incorrectly)

This commit is contained in:
Alexey Romanov
2012-09-14 16:11:49 +04:00
parent e8113d2afa
commit 99ea8fdb7b
2 changed files with 19 additions and 3 deletions

View File

@@ -357,7 +357,7 @@ static inline int decode_and_bind_param(
// include space for null separator
char_buf_val = driver_alloc((*p_size + 1) * sizeof(char));
ei_decode_string(buffer, p_index, char_buf_val);
result = sqlite3_bind_text(statement, param_index, char_buf_val, *p_size, &driver_free_fun);
result = sqlite3_bind_text(statement, param_index, char_buf_val, *p_size, &driver_free_fun);
break;
case ERL_BINARY_EXT:
char_buf_val = driver_alloc(*p_size * sizeof(char));
@@ -413,7 +413,7 @@ static int bind_parameters(
acc_string = driver_alloc(sizeof(char*) * (*p_size + 1));
ei_decode_string(buffer, p_index, acc_string);
for (param_index = 1; param_index <= *p_size; param_index++) {
sqlite3_bind_int(statement, param_index, (int) acc_string[param_index - 1]);
sqlite3_bind_int(statement, param_index, (int) (unsigned char) acc_string[param_index - 1]);
}
driver_free(acc_string);
return 0;