Page 1 of 1
can't exec linux mysql procedure
Posted: Tue 15 Jul 2008 00:09
by weichaoyang
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!
Posted: Wed 16 Jul 2008 12:12
by Antaeus
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?
Posted: Thu 17 Jul 2008 00:18
by weichaoyang
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.
Posted: Fri 18 Jul 2008 06:40
by Antaeus
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.
Posted: Mon 21 Jul 2008 01:14
by weichaoyang
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 ;
Posted: Tue 22 Jul 2008 12:39
by Dimon
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.