diff --git a/test/sqlsrv/sqlsrv_param_input_variants_nulls.phpt b/test/sqlsrv/sqlsrv_param_input_variants_nulls.phpt deleted file mode 100644 index 36ba57ea..00000000 --- a/test/sqlsrv/sqlsrv_param_input_variants_nulls.phpt +++ /dev/null @@ -1,181 +0,0 @@ ---TEST-- -Test parameterized insert and fetch sql_variants as strings using various data types ---DESCRIPTION-- -The following lists the types of values that can not be stored by using sql_variant: -varchar(max) / nvarchar(max) -varbinary(max) -xml -text / ntext / image -rowversion (timestamp) -sql_variant -geography -hierarchyid -geometry -datetimeoffset -User-defined types ---FILE-- -c1_int, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c2_tinyint, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c3_smallint, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c4_bigint, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c5_bit, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c6_float, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c7_real, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c8_decimal, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c9_numeric, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c10_money, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c11_smallmoney, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c12_char, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c13_varchar, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c14_uniqueidentifier, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c15_datetime, $row[$fld], $fetched, $fld++); - DoValuesMatched($obj->c16_smalldatetime, $row[$fld], $fetched, $fld++); - } - // returns the number of rows fetched - return $fetched; -} - -function DoValuesMatched($value1, $value2, $row, $col) -{ - $matched = false; - if (is_null($value1) && is_null($value2)) - { - $matched = true; - } - else if (is_numeric($value1)) - { - $matched = CompareNumericData($value1, $value2); - } - else - { - if (! strcasecmp($value1, $value2)) - $matched = true; - } - - if (! $matched) - { - echo "Values from row $row and column $col do not matched\n"; - echo "One is $value1 but the other is $value2\n"; - } -} - -function GetInputData($index) -{ - switch ($index) - { - case 1: - return array(array(1, null, null, null), array(167, null, null, null), array(-28589, null, null, null), array(-1991578776, null, null, null), array(0, null, null, null), array(1, null, null, null), array(0, null, null, null), array(0.0979, null, null, null), array(0.3095, null, null, null), array(0.8224, null, null, null), array(0.6794, null, null, null), array('~Ö~.üoö©UßB.|ÃÄ£*/v|U/*bZ£ÄUÜß*+ööî*©ðü©bðr@éåbOý|©©hob/>Cz<Äå::Ð<¢ß+ü/:ª@zrß.¢Ü£bÜU©ÃßÜßðoß©r*bÜböOUvãahub£ãäªb>_ã£BOÜA©ãü/ߢß.ov:Ö<:_+uÜC:£oöü*BzC,Äö~Zî@/Z/r@/©<~.ã¢Aaü>ý_zz@rÖ¢aU@,ABð/¢ß>z/ã@/ªUA~CoÄ,>bö|Ö>A,v+©CbC/Oo>©ßa©boAîÐvOo>ã|Cåöo+ÃhÖBAbo,+<ßã/£@å+ßAÜ@äÖÜOBäß~öu*ã+a<îoo|¢üýoBaÃÜ£ãCaC@ha,äzäî¢ü@å£b~råîUbßr©ãßÐ:@UhAO>u*uýBbäZ£aý>v:ðC~ÜöåðzZ>O|Cä+£>öz./Ö+uÜ', null, null, null), array(',ßhr©+|v@,Ã+BZ|îAÐß_öýða_AoäAOÜ*ýC@hoBßßaä+ýöCäAä_Ä¢/Uî.äC©¢rÃuz¢*,ýß.Ðöðý@b£öb.OCý@>hðÖrCZb/Oªz¢A+ªÖäu<ßÜÄ/ÐßÖîbU:bÄÐã>/£ÜÃBÃ@Ð.r:ªª>©zî_ÄÄ:@A.+.aoÖ@¢åOåOBB|+Cvüa_+hz|~COoACAî¢+*Ä©*ýî~|.Äz|u+o~:<@>Arb:~£z<äbãv>Ðr©:ðýCößÖ¢UAîãý:Ã~.C*C¢uÖ*~CÄ*äAb>h@h_>,|u<<.,vå,.BAuo£_ãB.Örö.Ä>zoba~C©hArªB£Zü~oÃbb>î+ääÄCbÐýª*Üýburäßv/åOüA:Oß:obvz©ý/ßroäaª/bªvz©rÐ,ZäߢªÄ.ã.@z¢|ð*aCý©:ýÄövã,öAbö+ÖCb~uÖ£züî|_ö~*CÃ>+ý/_ß+ãÐz~aöb/BzZÜ@öðß@_Ä££r__£>£Ð£ðbUB~/ãbo.>îzöã*,ßå/+zuu.+BZßzA,aÖzüåão£©BãÄbä~ýooÜ,+äßÐ:UÃrz|vä,Bå~¢ä<_£uÜv<_O|ßBC¢_£Ahöª_¢oözCßýzöüý+zÄUÖhB@Uîbh/u/©zÐbÖ¢A*ã,Ãî£<>rUªßÐßîZîåb:+¢|A_BÃo©ªäu,*ýååbU:bÖÄß|¢>¢ÖaãrÃO©Äv+oßöZãª,+/.ãa/㣪,¢ðÐ<î¢b.£Ü©_r©vª@î:>ÖðB:OrBÜЪý|bßbÜ|åUOåîOãÄãuÐ|/îörB£ÃßZZÄ@Z©bÜB:.¢@b££U¢äÐvÐ+ý+uzÃb+üo+öv~_©~Uhbª,ßCb+UZö>Üü', SQLSRV_PARAM_IN, null, null), array('|öÐob*+ÐÖ,..Ä¢ß@>îß*äî|å>~Oo+/o+*/ü|îî,ðö*ýåãob:zb|Äßîvb¢,Ã,UªbbrAbZ©uªª@ä,_ð©A*>Ðävä:|:oîö_rý©+vî©ßBßßb>üOö@Öoö*+î@ÐßrÖ<¢hÜZb._raUaýUUÄößßîU¢ð.ÐýrãBh¢>Äðz<©AÜ/|©Ö@>hüBCO~öýZ>äÄÐAzä~/b.ÜzbðÜbða++ªå/ð~ACÐî~©>./<Ööý<~ýuÃBÐãåo*h©ö£öîüZß:ZÐä_>Ðvî©_äbb©ö¢*b@BÐÜb+bî+åßAåîu|/A.Ä.~hvb:@zå|Ä,ªÃZß@v©ßvB@Bð:£öß@uðr££ðü<Ä¢äÖaßO.:rª/Ao,ª:ZbA+¢ß|>,*ßoöA+ãb|Aü@bÄð@a:+,ouªýª+£ðr*Bã¢+rCðUU_ÖÃ>îö>r©v:U_v@vCÜ>', SQLSRV_PARAM_IN, null, null), array('29a27f4f-9e94-45a9-9110-812ef69ee37c', SQLSRV_PARAM_IN, null, null), array('4262-03-20 19:16:36.081', SQLSRV_PARAM_IN, null, null), array('2065-02-17 00:36:00', SQLSRV_PARAM_IN, null, null)); - case 3: - return array(array(3, null, null, null), array(170, null, null, null), array(25360, null, null, null), array(1352271629, null, null, null), array(0, null, null, null), array(0, null, null, null), array(0, null, null, null), array(0.3807, null, null, null), array(0.4393, null, null, null), array(0.8725, null, null, null), array(0.2057, null, null, null), array('ZÄßÃ|vbB/OýÖ~AABß©Ã@ÄÖßz~åz@ü.Ö<*~ãäßOÜÄv~Īb_ör*bvÃÖýZZ<ö¢.|Ð>ÜåaCAîâãßu/aå|@U*¢Bb*+bZr_.ã|,h_BöÄb.ðZ©//î_~v/ð/,bð¢/:@öãß+vÜv/båðöã:ã/z:£î<_ÐöC>.Ozrð©@rC~Bö,£o<:Ã*z_ªöÜ,z,ªboB,+öCr*¢î*<£~ýb:U|©Bh/ãÜÖý:obhå£+Z+r:o|v+bÐhãåaüÐöbãðöAÃ|ªOCÖO|Ü<ãvv¢ãýbý.ÐbÄÃðåü>/BbbÄ/véäý:@o>öÃaªÐ+îüýã_röýä©zhvÜ<Ã/CäaðoCB|å~~ÖaðvuC_hBrOrzÃßO©ZU.AvvåÖÐ/ÐãåZ©£,UãÖAîhUzªrö£Ãu+ð/v¢o_<ÐA@', null, null, null), array('ÄßZrð@~ö:ü:£,CoÄ©böBAO,ð:aA>ãÜBÐ@./:A.Z/bÖÜ,>ßî>ýßß©b/<@/,Öî>BBÃäÐCüÃÐÃvÜ_AZ.ý/©C_>aö/£Böða©£,öý£B_ÜÃðßvh|î|.oB/öBÜö¢BÐ/bAAÜÄa£.ªA©z<£ýOÐrå._bÄÜß~Ä_ªý,|+BãîA~Cî@ü+@ÜüzCªr.rzåazUöCzBߪ©Bö+ü*ZãÖ@AC*UA¢..aÜü*ArÃz£B:ßßÄ+Ã/ãª+ßZ_Ü<ßäîýýî@ðÄÜßÃÖðova£ªOöÄzÖ©ãrabªÐUrår+Ü*©OöåBö|a©î:bß©ð~_C_o*hÃ@åBb|<åÄß@©ý.Ubª,O£Oz|üßbz£+bã¢a@>:aaîý_Ür£|hÃ@z<_hüÃü,öîZýuã_¢üå£<ðßAª>rC.Bî.©,ß*å|é*_B>CÄîÖÃU~ÃÃ>rª>/ð©Ö|~ZA>¢¢/@£bZuZößzðå~:/h@uÐoOrã<¢aîßüß<¢BZzO¢@.:rvÜo>ABzC/ÜßÖ::r©O/v*@üaäzßZhU@aßvüî:©ü~ðª©_b£ä£ãB@:bhCÄZÜzOUßoåîÜý><', null, null, null), array('55a1f242-dad9-4f8e-b839-364fb6e1ffec', null, null, null), array('7060-11-11 17:57:33.899', null, null, null), array('1920-07-05 00:42:00', null, null, null)); - case 4: - return array(array(4, SQLSRV_PARAM_IN, null, null), array(229, SQLSRV_PARAM_IN, null, null), array(-13459, SQLSRV_PARAM_IN, null, null), array(-8557402, SQLSRV_PARAM_IN, null, null), array(0, SQLSRV_PARAM_IN, null, null), array(0, SQLSRV_PARAM_IN, null, null), array(1, SQLSRV_PARAM_IN, null, null), array(0.3122, SQLSRV_PARAM_IN, null, null), array(0.3036, SQLSRV_PARAM_IN, null, null), array(0.8606, SQLSRV_PARAM_IN, null, null), array(0.4224, SQLSRV_PARAM_IN, null, null), array('uåîAZ©ÄZöäÜO@ÐðZ:r:vÜ@ýA/,O,ãBß>¢hð.Z>£Bߪ+¢ªZU/@@äB.orÐîå¢ð>*<äAv~,ß@ýü~+~*Ðå¢ý_å_bÄb~_<<ßÄ:o¢zrC<ªa~BäÐýA©ßB.Uhîß+rAÖå¢ýö.îîaýåUC¢/Aüöß©zÄaðÐ,b|||+vCO+~üA£ÄöãýbÜ_üßãCðã|_ÄbäÃU~***<¢¢höUãbözbÄ>Ðühr.vÐ:£_Ä~@/o,a_abý_>ßr*å|bob¢îãBî~<üBÜouÄBar_üß.ÐÐ,©ýuÖUöäÐÐîZýªÃ*vß|~îZßZÜÐrh*~UÜ*î@OBÃßraUb:*/B/@OÄaãoßBãÃhöBb@Uªý*|£U+ü*¢ß¢häUðOb/*.rßOrÖåüO<ý*aöCa@ªoä>ÐC.UO+ZUrÜA©Oã,ro+î+,Üå¢<¢rÐu.ªî|ãÃB,ða,ªÐüÄü©ßBÖß+uv>BöußÜ|h|aßohB*ovãu+@Ü£ßO©ßßBý:b+£bÐÖäªo:UAÐo_ã~>ö<ühåÖÐî>å*v¢ßa_>/ZÖ:åbbäz¢Ä*Ü¢ÜåubvÖUî@Ã:¢<Üß_.*Öh,o/uz.B_/Äã|Ü/öOÐ.ÐßU@ßbav~zAßu+ª£U¢<ýÖä©Ä>ßãåäbã¢ßýªöåä,*ubßß@¢><üCozÐЩäC_aauC/_<.ýuÜ£Ö,uCÜÃbåräZ,ðÐî@îbzÖã+ã,CB£ZzB¢vÄ*+Üb¢üýßU*oÄärãü@öîaß.|äý©bÖ|BuA©ª,C/ZB*ð~aÃÃvîü©+ªÃ+Ã_öuu¢ZöbÄuð©O¢Z@_uä|bu,äOÐÜbBr@|Ãüb/îr©ß.ååßÜabZ©hß+ãߪz|+Aå@äü>Ä+ýu|å¢z|bhr*ªbO©>/ö,hÐå+Öå_OßZ|ð,b.AäÐß_@ßß©.üüZäuA/aC|£CäßýbhÖÖªZö@ÃhßÖ£/å*örüßðU*~vhðv_Üðýðß<+bAbBa:ªÄ/vܪUuÄîîabãßO>:,Ãýðußßäö@vîhäÜ>£¢hý+zAZbaBðУ|å|ªÐ*:Ã>ª:ð£ÐüßÖbuªOOA>Bb©ÃärÐîhzö,+|C:Aö', SQLSRV_PARAM_IN, null, null), array('34eeff6c-7d28-4323-9e28-d6b499fde336', SQLSRV_PARAM_IN, null, null), array('4191-02-05 02:41:51.953', SQLSRV_PARAM_IN, null, null), array('1975-12-01 15:24:00', SQLSRV_PARAM_IN, null, null)); - default: - return array(); - } -} - -function RunTest() -{ - StartTest("sqlsrv_param_input_variants_nulls"); - try - { - set_time_limit(0); - sqlsrv_configure('WarningsReturnAsErrors', 1); - - require_once("autonomous_setup.php"); - $database = "tempdb"; - - // Connect - $connectionInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password, "CharacterSet"=>"UTF-8"); - $conn = sqlsrv_connect($serverName, $connectionInfo); - if( !$conn ) { FatalError("Could not connect.\n"); } - - // Create a temp table that will be automatically dropped once the connection is closed - $tableName = GetTempTableName(); - CreateTable($conn, $tableName); - - // Insert data - $numRows = 4; - for ($i = 1; $i <= $numRows; $i++) - InsertData($conn, $tableName, $i); - - FetchData($conn, $tableName, $numRows); - - sqlsrv_close($conn); - } - catch (Exception $e) - { - echo $e->getMessage(); - } - echo "\nDone\n"; - EndTest("sqlsrv_param_input_variants_nulls"); -} - -RunTest(); - -?> ---EXPECT-- - -...Starting 'sqlsrv_param_input_variants_nulls' test... -Comparing data in row 1 -Comparing data in row 2 -Comparing data in row 3 -Comparing data in row 4 -Number of rows fetched: 4 - -Done -...Test 'sqlsrv_param_input_variants_nulls' completed successfully. diff --git a/test/sqlsrv/sqlsrv_param_output_variants.phpt b/test/sqlsrv/sqlsrv_param_output_variants.phpt index 294b4c9e..930c35ce 100644 --- a/test/sqlsrv/sqlsrv_param_output_variants.phpt +++ b/test/sqlsrv/sqlsrv_param_output_variants.phpt @@ -4,9 +4,9 @@ Test parametrized insert and sql_variant as an output parameter. sql_variant is not supported for output parameters, this test checks the error handling in this case --FILE--  0) + { + for($i = 0; $i < $count; $i++) + { + print($errors[$i]['message']."\n"); } - handle_errors(); - echo "\n"; } } @@ -90,20 +103,15 @@ function RunTest() StartTest("sqlsrv_param_output_variants"); try { - set_time_limit(0); - sqlsrv_configure('WarningsReturnAsErrors', 1); - - require_once("autonomous_setup.php"); - $database = "tempdb"; + Setup(); // Connect - $connectionInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password); - $conn = sqlsrv_connect($serverName, $connectionInfo); - if( !$conn ) { FatalError("Could not connect.\n"); } + $conn = Connect(); // Create a temp table that will be automatically dropped once the connection is closed $tableName = GetTempTableName(); - CreateTable($conn, $tableName); + CreateVariantTable($conn, $tableName); + echo "\n"; TestOutputParam($conn, $tableName); TestInputAndOutputParam($conn, $tableName); @@ -122,9 +130,10 @@ RunTest(); ?> --EXPECT-- - -...Starting 'sqlsrv_param_output_variants' test... +  [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Operand type clash: varchar(max) is incompatible with sql_variant + [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Operand type clash: varchar(max) is incompatible with sql_variant + Done -...Test 'sqlsrv_param_output_variants' completed successfully. \ No newline at end of file +Test "sqlsrv_param_output_variants" completed successfully. \ No newline at end of file