Что нового

проблема вызова хранимой процедуры в mysql

rivega

Новичок
Сообщения
45
Репутация
1
Добрый день.
Возникла проблема при вызове хранимой процедуры mysq
сама процедураl(проверяет существует ли такая колонка, если нет, то создает ее):
Код:
DELIMITER $$

CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `AddColumnUnlessExists`(
	IN dbName tinytext,
	IN tableName tinytext,
	IN fieldName tinytext,
	IN fieldDef text)
begin
	SET NAMES cp1251;
	IF NOT EXISTS (
		SELECT * FROM information_schema.COLUMNS
		WHERE column_name=fieldName
		and table_name=tableName
		and table_schema=dbName
		)
	THEN
	
       set @ddl=CONCAT('ALTER TABLE ',dbName,'.',tableName,
			' ADD COLUMN ','`',fieldName,'`',' ',fieldDef);
		prepare stmt from @ddl;
		execute stmt;

	END IF;
end

Если вызываю ее в My SQL Workbench, то все срабатывает.
Если вызываю ее автоитом, то процедура как будто не вызывается- ничего не происходит.
Код:

#include "mysql.au3"



Local $UN = "root"
Local $PW = "566434"
Local $DB = "esi"
Local $SVR = "localhost"
Local $Port = "3306"
Local $Vesi="12.3"

_MySQL_InitLibrary()
If @error Then Exit MsgBox(0, '', "")
;MsgBox(0, "DLL Version:",_MySQL_Get_Client_Version()&@CRLF& _MySQL_Get_Client_Info())

$MysqlConn = _MySQL_Init()


$connected = _MySQL_Real_Connect($MysqlConn,$SVR,$UN,$PW ,$DB,$Port)
_MySQL_Set_Character_Set($MysqlConn,"cp1251")
If $connected = 0 Then
$errno = _MySQL_errno($MysqlConn)
MsgBox(0,"Error:",$errno & @LF & _MySQL_error($MysqlConn))
If $errno = $CR_UNKNOWN_HOST Then MsgBox(0,"Error:","$CR_UNKNOWN_HOST" & @LF & $CR_UNKNOWN_HOST)
Endif

$option="$MYSQL_OPTION_MULTI_STATEMENTS_ON"
_MySQL_Set_Server_Option($MysqlConn, $option)

$k="123"
$zapros3 = 'call esi.AddColumnUnlessExists(''esi'', ''cars'',''testtest'', ''varchar(32) null'');'
_MySQL_Query($MysqlConn,$zapros3)
[/autoit]
где esi- название базы, cars-таблицы

использую MySQl.au3 от сюда http://www.autoitscript.com/forum/topic/85617-mysql-udfs-without-odbc/




В чем может быть проблема? Я не правильно вызываю процедуру?
 
Верх