Result set:
1234
+
+Testing bytea conversions
+Testing "SELECT ?" with SQL_C_BINARY -> SQL_BINARY param...
+Result set:
+666f6f0a5c62617200
+
+Testing "SELECT ?" with SQL_C_CHAR -> SQL_BINARY param "666f6f0001"...
+Result set:
+666f6f0001
+
+Testing "SELECT ?::text" with SQL_C_BINARY -> SQL_CHAR param...
+Result set:
+foo
+\bar
+
disconnecting
Result set:
1234
+
+Testing bytea conversions
+Testing "SELECT ?" with SQL_C_BINARY -> SQL_BINARY param...
+Result set:
+\x666F6F0A5C62617200
+
+Testing "SELECT ?" with SQL_C_CHAR -> SQL_BINARY param "666f6f0001"...
+Result set:
+\x666F6F0001
+
+Testing "SELECT ?::text" with SQL_C_BINARY -> SQL_CHAR param...
+Result set:
+foo
+\bar
+
disconnecting
{
SQLRETURN rc;
SQLINTEGER intparam;
+ char byteaparam[] = { 'f', 'o', 'o', '\n', '\\', 'b', 'a', 'r', '\0' };
test_connect();
intparam = -1234;
TEST_CONVERT("SELECT 0-?", SQL_C_SLONG, SQL_SMALLINT, &intparam);
+ printf("\nTesting bytea conversions\n");
+ TEST_CONVERT("SELECT ?", SQL_C_BINARY, SQL_BINARY, byteaparam);
+ TEST_CONVERT("SELECT ?", SQL_C_CHAR, SQL_BINARY, "666f6f0001");
+ TEST_CONVERT("SELECT ?::text", SQL_C_BINARY, SQL_CHAR, byteaparam);
+
/* Clean up */
test_disconnect();
break;
}
- cbParam = SQL_NTS; /* ignored for non-character data */
+ if (c_type == SQL_BINARY)
+ cbParam = strlen(value) + 1;
+ else
+ cbParam = SQL_NTS; /* ignored for non-character data */
rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT,
c_type, /* value type */
sql_type, /* param type */