2016-08-28 5 views
0

Следующая процедура отлично работает с клиентом mysql, но не работает с Python.Python Хранимая процедура не работает, ошибок нет

хранимых процедур

CREATE DEFINER=`music-cnv`@`%` PROCEDURE `StoreFileStats`(FNAME VARCHAR(200), FEXT varchar(4), FBDIR VARCHAR(100), FRDIR VARCHAR(250), FSIZE bigint(8), FMDATE bigint(8), FCDATE bigint(8), CONVERTED tinyint(1)) 
BEGIN 
    DECLARE FCount int DEFAULT 0; 
    SELECT COUNT(FileName) INTO FCount FROM FileList where (FleRelativeDir LIKE FRDIR) AND (FileName LIKE FNAME); 
    IF FCount = 0 THEN 
     INSERT INTO FileList (FileName,FileBaseDir,FleRelativeDir,FileExt,FileSize,FileModDate,FileCDate,Con#verted) VALUES (FNAME,FBDir,FRDir,FEXT,FSize,FMDate,FCDate,CONVERTED); 
    END IF; 
END 

данных

'In the Light', 'FLAC', '/var/data/Music_FLAC', 'Led Zeppelin/Physical Graffiti, Disc 2', 51472669, 1289282499, 1458631127, False 

Python код

Подключение и курсор не дают никаких ошибок

try: 
    myargs = [fnamesub, self.type.strip(), self.directory, 
     subdirname, fpathstat[2], fpathstat[3], 
     fpathstat[4], False] 
    result_args = mycur.callproc('StoreFileStats', myargs) 
except mysql.connector.Error as Err: 
    errno = 51 
    print('Error ' + str(errno) + ' !!!, Cannot Update MySQL Data with Name '  + fnamesub) 
    print(Err) 

код выполняется без ошибок, но не обновляет базу данных Спасибо за любую помощь

ответ

0

просто необходимо совершить. При запуске процедуры с автоматической фиксацией оболочки включена. Но при запуске с Python необходимо вручную запустить commit.

Смежные вопросы