add Language option on connect

This commit is contained in:
Guillaume Degoulet 2019-02-13 13:56:12 +01:00
parent c5989d8a11
commit 5b2b7504da
4 changed files with 63 additions and 0 deletions

View file

@ -48,6 +48,7 @@ const char AttachDBFileName[] = "AttachDbFileName";
const char Authentication[] = "Authentication";
const char ColumnEncryption[] = "ColumnEncryption";
const char ConnectionPooling[] = "ConnectionPooling";
const char Language[] = "Language";
const char ConnectRetryCount[] = "ConnectRetryCount";
const char ConnectRetryInterval[] = "ConnectRetryInterval";
const char Database[] = "Database";
@ -241,6 +242,15 @@ const connection_option PDO_CONN_OPTS[] = {
CONN_ATTR_BOOL,
conn_null_func::func
},
{
PDOConnOptionNames::Language,
sizeof( PDOConnOptionNames::Language ),
SQLSRV_CONN_OPTION_LANGUAGE,
ODBCConnOptions::Language,
sizeof( ODBCConnOptions::Language ),
CONN_ATTR_STRING,
conn_str_append_func::func
},
{
PDOConnOptionNames::Driver,
sizeof(PDOConnOptionNames::Driver),

View file

@ -1131,6 +1131,7 @@ const char Authentication[] = "Authentication";
const char Driver[] = "Driver";
const char CharacterSet[] = "CharacterSet";
const char ConnectionPooling[] = "ConnectionPooling";
const char Language[] = "Language";
const char ColumnEncryption[] = "ColumnEncryption";
const char ConnectRetryCount[] = "ConnectRetryCount";
const char ConnectRetryInterval[] = "ConnectRetryInterval";
@ -1163,6 +1164,7 @@ enum SQLSRV_CONN_OPTIONS {
SQLSRV_CONN_OPTION_ACCESS_TOKEN,
SQLSRV_CONN_OPTION_CHARACTERSET,
SQLSRV_CONN_OPTION_CONN_POOLING,
SQLSRV_CONN_OPTION_LANGUAGE,
SQLSRV_CONN_OPTION_DATABASE,
SQLSRV_CONN_OPTION_ENCRYPT,
SQLSRV_CONN_OPTION_FAILOVER_PARTNER,

View file

@ -233,6 +233,7 @@ const char Authentication[] = "Authentication";
const char CharacterSet[] = "CharacterSet";
const char ColumnEncryption[] = "ColumnEncryption";
const char ConnectionPooling[] = "ConnectionPooling";
const char Language[] = "Language";
const char ConnectRetryCount[] = "ConnectRetryCount";
const char ConnectRetryInterval[] = "ConnectRetryInterval";
const char Database[] = "Database";
@ -380,6 +381,15 @@ const connection_option SS_CONN_OPTS[] = {
CONN_ATTR_BOOL,
conn_null_func::func
},
{
SSConnOptionNames::Language,
sizeof(SSConnOptionNames::Language),
SQLSRV_CONN_OPTION_LANGUAGE,
ODBCConnOptions::Language,
sizeof(ODBCConnOptions::Language),
CONN_ATTR_STRING,
conn_str_append_func::func
},
{
SSConnOptionNames::Driver,
sizeof(SSConnOptionNames::Driver),

View file

@ -0,0 +1,41 @@
--TEST--
Encoding of sqlsrv errors
--SKIPIF--
<?php require('skipif.inc'); ?>
--FILE--
<?php
header('content-type: text/plain;encoding=ISO-8859-1');
require_once("MsCommon.inc");
$conn = connect(array( 'CharacterSet'=>'UTF-8','Language'=>'German' ));
if (!$conn) {
die(print_r(sqlsrv_errors(), true));
}
$stmt = sqlsrv_query($conn, "select *, BadColumn from sys.syslanguages");
if ($stmt) {
echo 'OK!';
sqlsrv_free_stmt($stmt);
} else {
$errs = sqlsrv_errors();
print_r($errs);
}
sqlsrv_close($conn);
?>
--EXPECTF--
Array
(
[0] => Array
(
[0] => 42S22
[SQLSTATE] => 42S22
[1] => 207
[code] => 207
[2] => %SUngültiger Spaltenname %cBadColumn%c.
[message] => %SUngültiger Spaltenname %cBadColumn%c.
)
)