Bug #50671 Visual Studio 2005 and DataDesigner Plugin for MySql
Submitted: 27 Jan 2010 18:03 Modified: 13 Aug 2010 14:18
Reporter: Berthold Simon Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / NET Severity:S3 (Non-critical)
Version:6.1.3, 6.2.2 OS:Windows
Assigned to: Reggie Burnett CPU Architecture:Any

[27 Jan 2010 18:03] Berthold Simon
Description:
I'm working with VS2005 prof. SP1 and the MySQL Visual Studio Plugin installed via the installation process of the MySQL Connector/Net. Generally the plugin works fine when i add a dataset with a sql query to my project. But when i want to add a dataset with a stored procedure the dialog fails. I can choose the stored procedure and when i press the button continue (in german: weiter) the dialog closes. Is it a bug in the plugin?

Versions:
MySQL Server 5.1.41
MySQL Connector/Net 6.1.3
MySQL Tools 5.0
MySQL QueryBrowser 1.2.17
VS2005 prof. SP1
OS Windows Vista Home Premium

How to repeat:
Add a stored procedure via the MySQLQueryBrowser to the database
create a new project in VS2005
add a new dataset to the project
choose the database in the server explorer
choose a table
add a new dataset to the project
choose stored procedure
choose the defined stored procedure from the combobox
click continue
[2 Feb 2010 13:35] Tonci Grgin
Hi Berthold and thanks for your report.

We have seen such report many times in the past; Bug#47672, Bug#44534, Bug#31522 and so on...

This time I retested with all I have on both VS2005 and VS2008:
 o Works:
ALTER DEFINER=`root`@`%` PROCEDURE `bug43349`(IN param1 INT, IN param2 INT)
SELECT CURRENT_DATE AS cd, RAND(param1+param2) AS rnd, param1 AS parval, param2 AS parval0

ALTER DEFINER=`root`@`%` PROCEDURE `testBug46015`()
BEGIN SELECT SLEEP(50);
END

ALTER DEFINER=`root`@`%` PROCEDURE `pbug48007`(Param1 varchar(25), Param2 varchar(25))
BEGIN
SELECT Param1, Param2;
END

ALTER DEFINER=`root`@`%` PROCEDURE `ptestfwsel`(IN param1 INT)
BEGIN SELECT CURRENT_DATE AS cd, RAND(param1) AS rnd, param1 AS parval; end

ALTER DEFINER=`root`@`%` PROCEDURE `spbug46910_1`()
BEGIN
  SELECT 0 AS ret;
END

  o Does not work: An error occurred while retrieving column information
Object reference not set to an instance of an object. These crash the query wizard.
ALTER DEFINER=`root`@`%` PROCEDURE `fill_main3`(IN startval INT)
BEGIN
  set @x=startval;
  REPEAT
    INSERT INTO main3 VALUES(NULL, @x);
    SET @x=@x+1;
  UNTIL @x = 100
  END REPEAT;
END

ALTER DEFINER=`root`@`%` PROCEDURE `pbug50123`(IN pfldID INT, IN pfldValue VARCHAR(50))
BEGIN INSERT INTO bug50123(fldID, fldValue) VALUES(pfldID, pfldValue); END

ALTER DEFINER=`root`@`%` PROCEDURE `ptestfwins`()
BEGIN set @x=0; REPEAT INSERT INTO testfwins VALUES(@x);SET @x=@x+1; UNTIL @x = 100 END REPEAT; END

  o Does not work: An error occurred while retrieving column information
OUT or INOUT argument 1 for routine test.bug46429 is not a variable or NEW pseudo-variable in BEFORE trigger.
DELIMITER $$
DROP PROCEDURE IF EXISTS `bug46429` $$
CREATE DEFINER=`root`@`%` PROCEDURE `bug46429`(OUT pResult VARCHAR(500))
BEGIN
  select 'abc' into pResult;
END $$
DELIMITER ;

DELIMITER $$
DROP PROCEDURE IF EXISTS `bug43576_2` $$
CREATE DEFINER=`root`@`%` PROCEDURE `bug43576_2`(IN ccuent1 VARCHAR(100), IN ccuent2 VARCHAR(100),
OUT nfact VARCHAR(100),
OUT ffact VARCHAR(100),
OUT fdoc VARCHAR(100))
BEGIN
SET nfact = 'ncfact string';
SET ffact = 'ffact string';
SET fdoc = 'fdoc string';
END $$
DELIMITER ;

and so on...

I have tried varying connection parameters in new projects but to no avail.
Now, "is not a variable or NEW pseudo-variable in BEFORE trigger" obviously relates to OUT parameters while "Object reference not set to an instance of an object" relates to variables inside SP.

Reggie?
[2 Feb 2010 13:36] Tonci Grgin
Full list of SP's

Attachment: functioning.jpg (image/jpeg, text), 66.25 KiB.

[10 Mar 2010 8:53] Tonci Grgin
Bug#51882 is marked as duplicate of this report.
[11 Aug 2010 22:10] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/115537

833 Reggie Burnett	2010-08-11
      - fixed stored procedure enumeration code that would barf if a proc was used in a dataset
        that did not actually return any resultsets (bug #50671)
[11 Aug 2010 22:17] Reggie Burnett
Fixed in 6.0.7, 6.1.5, 6.2.4, and 6.3.4+
[13 Aug 2010 14:18] Tony Bedford
An entry has been added to the 6.0.7, 6.1.5, 6.2.4, and 6.3.4 changelogs:

Stored procedure enumeration code generated an error if a procedure was used in a dataset that did not return any resultsets.