can't exec linux mysql procedure

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for MySQL in Delphi and C++Builder
Post Reply
weichaoyang
Posts: 7
Joined: Fri 11 Jul 2008 04:40

can't exec linux mysql procedure

Post by weichaoyang » Tue 15 Jul 2008 00:09

hi,
I create a procedure in mysql 5, Delphi 7 executes rightly. But, when i copy the procedure to linux platform, mysql client executes rightly, Kylix tell me " ')' not a integer ". I test it , if the number of procedure' parameters exceed 2, error; if the number of procedure' parameters is 1,OK.
How can I do?
When you deploy the MDA, HAVE YOU TESTed IT ?
Your home page tell me , DbxMda supports MySQL server 5.1, 5.0, 4.1, 4.0, and 3.23. supports Borland Delphi 7 , Borland Kylix 3 .
Why i can't use it?
developer license number is CRDBM-01127.

THANKS!

Antaeus
Posts: 2098
Joined: Tue 14 Feb 2006 10:14

Post by Antaeus » Wed 16 Jul 2008 12:12

Please specify the versions of DbxMda, MySQL server, and Kylix you are using.
Do you use the same MySQL server from both Delphi and Kylix applications?

weichaoyang
Posts: 7
Joined: Fri 11 Jul 2008 04:40

Post by weichaoyang » Thu 17 Jul 2008 00:18

DBxMDA 4.20.8
Delphi 7
kylix 3
mysql for win mysql-5.0.51b-win32
mysql for linux mysql-5.0.51a-linux-i686-glibc23.tar.gz
but, i think it has nothing to do with mysql version.

Antaeus
Posts: 2098
Joined: Tue 14 Feb 2006 10:14

Post by Antaeus » Fri 18 Jul 2008 06:40

Thank you for information. I could not reproduce the problem. Please, send me a complete small sample to reproduce it at dbxmda*devart*com. If you have a possibility, check this problem with the Windows version of MySQL and with the application built with Kylix, and with MySQL released prior to MySQL 5.0.51a.

weichaoyang
Posts: 7
Joined: Fri 11 Jul 2008 04:40

Post by weichaoyang » Mon 21 Jul 2008 01:14

DELIMITER $$
DROP PROCEDURE IF EXISTS `newOilvouch` $$
CREATE PROCEDURE newOilvouch(IN a_ttc int,
IN a_paymode varchar(2),
IN a_takedate varchar(20),
IN a_StationID varchar(12),
IN a_oilgunno varchar(3),
IN a_machineNo int,
IN a_oilno varchar(12),
IN a_price DECIMAL(6,2),
IN a_liter DECIMAL(10,6),
IN a_amount DECIMAL(8,2),
IN a_cardno varchar(60),
IN a_tac varchar(8),
OUT a_ret int)
DETERMINISTIC
BEGIN
declare s_autoPrint char(1) default ' ';
declare s_State char(1) DEFAULT '';
declare s_PrintContent varchar(60) DEFAULT '';
DECLARE done INT DEFAULT 0;

declare i_seqNo int;
declare s_fromTime varchar(5);
declare s_toTime varchar(5);
declare d_LQuan DECIMAL(10,6);
declare c_LSplitType char(1);
declare i_LDigits int;
declare d_PQuan DECIMAL(10,6);
declare c_PSplitType char(1);
declare i_PDigits int;
declare d_liter DECIMAL(10,6);
declare new_liter DECIMAL(10,6);
declare new_price DECIMAL(10,2);
declare new_amount DECIMAL(10,2);
declare cur_pri int;
declare cur_seqNo int;

set a_ret = 1;

END
$$
DELIMITER ;

Dimon
Devart Team
Posts: 2910
Joined: Mon 05 Mar 2007 16:32

Post by Dimon » Tue 22 Jul 2008 12:39

This exception is raised on internal level and it is processed by DbxMda. You can see this exeption only if you run the application from IDE.
This is a valid situation in the current DbxMda build. We will change this behaviour in the next build.

Post Reply