| Bug #15174 | bug whan i try to coll stored procedure in | ||
|---|---|---|---|
| Submitted: | 23 Nov 2005 5:45 | Modified: | 26 Dec 2005 8:58 |
| Reporter: | musef habra | Email Updates: | |
| Status: | No Feedback | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.0.16 | OS: | Windows (win XP) |
| Assigned to: | Assigned Account | CPU Architecture: | Any |
[23 Nov 2005 6:32]
Jorge del Conde
Hi!
The problem seems to be with your stored procedure rather than mysql itself:
mysql> CREATE PROCEDURE `ddd`(out d int)
-> BEGIN
-> SELECT COUNT(*) INTO d FROM acc;
-> END $$
ERROR 1418 (HY000): This routine has none of DETERMINISTIC, NO SQL, or READS SQL
DATA in its declaration and binary logging is enabled (you *might* want to use
the less safe log_bin_trust_routine_creators variable)
mysql>
[24 Nov 2005 18:34]
musef habra
I make test for colling procedure from "MySQL Query Browser " and it was working good but whane itry to do this from delphi i have this problem.
[26 Nov 2005 8:58]
Vasily Kishkin
Could you please say why you use ptInput in stmtParams.CreateParam() instead of ptOutput? As far as I can understand you declared parameter (d) in procedure as OUT.
[27 Dec 2005 0:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".

Description: bug whan i try to coll stored procedure in mysql5.0.16 by output variable in delphi7 language by using dbexpress or corelab library. How to repeat: this is my stored procedure statment DELIMITER $$ DROP PROCEDURE IF EXISTS `accounts1`.`ddd` $$ CREATE PROCEDURE `ddd`(out d int) BEGIN SELECT COUNT(*) INTO d FROM acc; END $$ DELIMITER ; and this is my coll from delphi7 procedure TMainForm.Button1Click(Sender: TObject); var SQLstmt: String; stmtParams: TParams; begin stmtParams := TParams.Create; try stmtParams.CreateParam(ftInteger, 'd', ptInput); stmtParams.ParamByName('d').AsInteger :=0; SQLstmt :='call ddd(:d)'; adm.SQLConnection.Execute(SQLstmt,stmtParams); <==== Error Showmessage(stmtParams.ParamByName('d').asstring); finally stmtParams.Free; end; end; and error message is SQL Server Error: OUT or INOUT argument 1 for routine accounts1.ddd is not a variable.