Skip to content

Commit 6325284

Browse files
Merge pull request #930 from gdegoulet/dev
add Language option on connect
2 parents f76944d + 5b2b750 commit 6325284

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed

source/pdo_sqlsrv/pdo_dbh.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ const char AttachDBFileName[] = "AttachDbFileName";
4848
const char Authentication[] = "Authentication";
4949
const char ColumnEncryption[] = "ColumnEncryption";
5050
const char ConnectionPooling[] = "ConnectionPooling";
51+
const char Language[] = "Language";
5152
const char ConnectRetryCount[] = "ConnectRetryCount";
5253
const char ConnectRetryInterval[] = "ConnectRetryInterval";
5354
const char Database[] = "Database";
@@ -241,6 +242,15 @@ const connection_option PDO_CONN_OPTS[] = {
241242
CONN_ATTR_BOOL,
242243
conn_null_func::func
243244
},
245+
{
246+
PDOConnOptionNames::Language,
247+
sizeof( PDOConnOptionNames::Language ),
248+
SQLSRV_CONN_OPTION_LANGUAGE,
249+
ODBCConnOptions::Language,
250+
sizeof( ODBCConnOptions::Language ),
251+
CONN_ATTR_STRING,
252+
conn_str_append_func::func
253+
},
244254
{
245255
PDOConnOptionNames::Driver,
246256
sizeof(PDOConnOptionNames::Driver),

source/shared/core_sqlsrv.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,6 +1131,7 @@ const char Authentication[] = "Authentication";
11311131
const char Driver[] = "Driver";
11321132
const char CharacterSet[] = "CharacterSet";
11331133
const char ConnectionPooling[] = "ConnectionPooling";
1134+
const char Language[] = "Language";
11341135
const char ColumnEncryption[] = "ColumnEncryption";
11351136
const char ConnectRetryCount[] = "ConnectRetryCount";
11361137
const char ConnectRetryInterval[] = "ConnectRetryInterval";
@@ -1163,6 +1164,7 @@ enum SQLSRV_CONN_OPTIONS {
11631164
SQLSRV_CONN_OPTION_ACCESS_TOKEN,
11641165
SQLSRV_CONN_OPTION_CHARACTERSET,
11651166
SQLSRV_CONN_OPTION_CONN_POOLING,
1167+
SQLSRV_CONN_OPTION_LANGUAGE,
11661168
SQLSRV_CONN_OPTION_DATABASE,
11671169
SQLSRV_CONN_OPTION_ENCRYPT,
11681170
SQLSRV_CONN_OPTION_FAILOVER_PARTNER,

source/sqlsrv/conn.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ const char Authentication[] = "Authentication";
233233
const char CharacterSet[] = "CharacterSet";
234234
const char ColumnEncryption[] = "ColumnEncryption";
235235
const char ConnectionPooling[] = "ConnectionPooling";
236+
const char Language[] = "Language";
236237
const char ConnectRetryCount[] = "ConnectRetryCount";
237238
const char ConnectRetryInterval[] = "ConnectRetryInterval";
238239
const char Database[] = "Database";
@@ -380,6 +381,15 @@ const connection_option SS_CONN_OPTS[] = {
380381
CONN_ATTR_BOOL,
381382
conn_null_func::func
382383
},
384+
{
385+
SSConnOptionNames::Language,
386+
sizeof(SSConnOptionNames::Language),
387+
SQLSRV_CONN_OPTION_LANGUAGE,
388+
ODBCConnOptions::Language,
389+
sizeof(ODBCConnOptions::Language),
390+
CONN_ATTR_STRING,
391+
conn_str_append_func::func
392+
},
383393
{
384394
SSConnOptionNames::Driver,
385395
sizeof(SSConnOptionNames::Driver),
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--TEST--
2+
Encoding of sqlsrv errors
3+
--SKIPIF--
4+
<?php require('skipif.inc'); ?>
5+
--FILE--
6+
<?php
7+
header('content-type: text/plain;encoding=ISO-8859-1');
8+
9+
require_once("MsCommon.inc");
10+
11+
$conn = connect(array( 'CharacterSet'=>'UTF-8','Language'=>'German' ));
12+
if (!$conn) {
13+
die(print_r(sqlsrv_errors(), true));
14+
}
15+
16+
$stmt = sqlsrv_query($conn, "select *, BadColumn from sys.syslanguages");
17+
if ($stmt) {
18+
echo 'OK!';
19+
sqlsrv_free_stmt($stmt);
20+
} else {
21+
$errs = sqlsrv_errors();
22+
print_r($errs);
23+
}
24+
25+
sqlsrv_close($conn);
26+
27+
?>
28+
--EXPECTF--
29+
Array
30+
(
31+
[0] => Array
32+
(
33+
[0] => 42S22
34+
[SQLSTATE] => 42S22
35+
[1] => 207
36+
[code] => 207
37+
[2] => %SUngültiger Spaltenname %cBadColumn%c.
38+
[message] => %SUngültiger Spaltenname %cBadColumn%c.
39+
)
40+
41+
)

0 commit comments

Comments
 (0)