Multiple Line SQL for MySQL?

Sarah Reichelt sarahr at genesearch.com.au
Mon Mar 28 23:14:38 EST 2005


Hi Peter,

Here is a segment of the handler I use for restoring data to MySQL. 
This takes the file produced by mysqldump and re-instates it. tRestore 
is a variable containing the text data.

   repeat
     get offset(";" & cr, tRestore)
     if it = 0 then exit repeat
     put char 1 to it of tRestore into tSQL
     delete char 1 to it of tRestore

     get doSQLexecute(tSQL, tID)
     if it is not a number then
       answer error "Error restoring from backup." & cr & it & cr & tSQL 
as sheet
       exit to top
     end if
   end repeat

I have a doSQLexecute function that is just a wrapper for the 
revExecuteSQL command. I realize that you didn't want to have to do 
this, but it is really quite fast.

HTH,
Sarah


On 23/03/2005, at 9:46 PM, Peter Reid wrote:

> Does anyone know whether Rev supports multiple-line SQL command 
> execution with MySQL?
>
> I have a Rev 2.5.1 project that is trying to create and populate a new 
> database based on an existing template database.  I have used 
> phpMyAdmin to dump a SQL script to a text file from a template 
> database containing the SQL commands to construct all the tables and 
> data I require.  However, I can't find a way of sending this script to 
> MySQL using Rev? (I can read the file into a text container, but I 
> can't feed this to the MySQL server using the revDB support commands 
> and functions).
>
> If I use revExecuteSQL command (or equivalent function revdb_execute), 
> I can send a single SQL command only.  If I try to use this inside a 
> "repeat for each..." loop to work through a text object that contains 
> multiple commands, then I hit a problem with any commands that have 
> been laid out across several physical lines (as you get from 
> phpMyAdmin dumps!).
>
> I really don't want to have to parse the SQL dump statements myself 
> and convert each long multi-line command into a long single-line 
> command just so I can use revExecuteSQL!  Nor do I want to use a 
> shell() command as this is a client-server application with the code 
> running on a client and the MySQL server running on a server on the 
> same local network.
>
> Any suggestions please?!
>
> Peter



More information about the Use-livecode mailing list