On Wed, 2011-05-25 at 15:49 +0200, Michal Čihař wrote:
Hi
Dne Wed, 25 May 2011 14:35:44 +0100 Rouslan Placella rouslan@placella.com napsal(a):
I can't find anywhere a method for changing the delimiter for a query, so that I can manipulate stored routines. For example, trying to execute:
DELIMITER // SELECT NOW()//
with PMA_DBI_query() fails with a syntax error, yet I can change the delimiter in the SQL tab, in the input box below the textarea. But it looks like the queries typed into the SQL tab are executed by import.php.
Yes, import.php is responsible for splitting input into multiple queries and they are run separately by PMA_DBI_query. So if you need to split out query, you have to go through import.php.
However if you are generating the query, you should send it part by part using PMA_DBI_query and just set sql_query to show complete query in the user interface.
Yes, I am generating the query on the fly, but I'm not sure how I am supposed to split it. Here's a simple example that I don't know how to handle:
CREATE PROCEDURE `proc`(INOUT p INT(10)) BEGIN SELECT 10 into p; END//
If I first try to execute
DELIMITER //
then PMA_DBI_query straight away returns the following error:
ERROR: Unknown Punctuation String @ 11 STR: // SQL: DELIMITER //
Thanks again for any help with this.
Rouslan