executeQuery & executeUpdate with va_list as parameter

In general, if you're writing variadic functions (that is, functions which take a variable number of arguments) in C, you should write two versions of each function: one which takes an ellipsis (...), and one which takes a va_list. This will allow us to call executeQuery & executeUpdate methods from a function which takes an ellipsis (...).