MyClasses.pas - Error !

Discussion of open issues, suggestions and bugs regarding MyDAC (Data Access Components for MySQL) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
kamrava
Posts: 9
Joined: Thu 10 May 2012 12:42

MyClasses.pas - Error !

Post by kamrava » Thu 10 May 2012 12:50

Hello there

when i wanna execute MyStoredProce , this error is showing :

...
(D:\Project\Delphi\Dac\MySql\Source\MyClasses.pas, line 2810)

I'm using : Delphi XE2 and MyDac 7.0.2
please help me.I need it :(

Thank You

Regards
Hamed Kamrava

AndreyZ

Re: MyClasses.pas - Error !

Post by AndreyZ » Thu 10 May 2012 14:05

Hello,

Please specify the exact error message that occurs (the message line before the '(D:\Project\Delphi\Dac\MySql\Source\MyClasses.pas, line 2810)' line). Also please specify the script to create your stored procedure.

kamrava
Posts: 9
Joined: Thu 10 May 2012 12:42

Re: MyClasses.pas - Error !

Post by kamrava » Thu 10 May 2012 14:26

Tnx for you'r reply.

it's error shot :
Image

and this is stored proc code in mysql :

Code: Select all

DELIMITER $$

USE `bimarestan`$$

DROP PROCEDURE IF EXISTS `save_user2`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `save_user2`(IN $_id VARCHAR(50),IN $_name VARCHAR(50),IN $_lname VARCHAR(50))
BEGIN
IF LTRIM(RTRIM($_id))<>'' THEN
 BEGIN
  IF NOT EXISTS(SELECT * FROM user1 WHERE id=$_id) THEN
    INSERT INTO user1 VALUES($_id,$_name,$_lname);
     END IF;
    END; 
END IF;
END$$

DELIMITER ;
and this is Delphi code :

Code: Select all

sp_save := TMyStoredProc.Create(nil);
sp_save.Connection := con;
sp_save.Active := False;
sp_save.StoredProcName := 'save_user2';
sp_save.ParamByName('$_id').Value := '100';
sp_save.ParamByName('$_name').Value := 'hamed';
sp_save.ParamByName('$_lname').Value := 'mofagh shodim';
sp_save.ExecProc;
Thank You

kamrava
Posts: 9
Joined: Thu 10 May 2012 12:42

Re: MyClasses.pas - Error !

Post by kamrava » Thu 10 May 2012 17:28

Please help me faster guys:(

I have to do this project for 2 days later . :cry:
I'm waiting for you'r answers.
Regards

Hamed Kamrava

AndreyZ

Re: MyClasses.pas - Error !

Post by AndreyZ » Fri 11 May 2012 06:53

This problem is caused by the '$' symbol in the names of your stored procedure parameters. MyDAC treats this symbol as a MySQL special character. To avoid the problem, you should remove the '$' symbol from the names of your stored procedure parameters. For example:

Code: Select all

DELIMITER $$

USE `bimarestan`$$

DROP PROCEDURE IF EXISTS `save_user2`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `save_user2`(IN _id VARCHAR(50),IN _name VARCHAR(50),IN _lname VARCHAR(50))
BEGIN
IF LTRIM(RTRIM(_id))<>'' THEN
 BEGIN
  IF NOT EXISTS(SELECT * FROM user1 WHERE id=_id) THEN
    INSERT INTO user1 VALUES(_id,_name,_lname);
     END IF;
    END; 
END IF;
END$$

DELIMITER ;

Code: Select all

sp_save := TMyStoredProc.Create(nil);
sp_save.Connection := con;
sp_save.Active := False;
sp_save.StoredProcName := 'save_user2';
sp_save.ParamByName('_id').Value := '100';
sp_save.ParamByName('_name').Value := 'hamed';
sp_save.ParamByName('_lname').Value := 'mofagh shodim';
sp_save.ExecProc;

kamrava
Posts: 9
Joined: Thu 10 May 2012 12:42

Re: MyClasses.pas - Error !

Post by kamrava » Fri 11 May 2012 07:12

Ow!
Yes that's right.
Thank you so much. :D

AndreyZ

Re: MyClasses.pas - Error !

Post by AndreyZ » Fri 11 May 2012 09:28

Feel free to contact us if you have any further questions about MyDAC.

Post Reply