From b7b73a07ff09356d003c30a2267f2d95923f0536 Mon Sep 17 00:00:00 2001 From: Hadis Kakanejadi Fard Date: Tue, 16 May 2017 14:52:19 -0700 Subject: [PATCH] added print error func to ourput variant test --- .../sqlsrv_param_input_variants_nulls.phpt | 181 ------------------ test/sqlsrv/sqlsrv_param_output_variants.phpt | 49 +++-- 2 files changed, 29 insertions(+), 201 deletions(-) delete mode 100644 test/sqlsrv/sqlsrv_param_input_variants_nulls.phpt 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