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!
can't exec linux mysql procedure
-
- Posts: 7
- Joined: Fri 11 Jul 2008 04: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.
-
- Posts: 7
- Joined: Fri 11 Jul 2008 04:40
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 ;
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 ;