Различные причины для этого .. скажем, например. если мы объявляем любую переменную, то она должна быть перед любыми другими типами операторов. или нам нужно поставить блок BEGIN до этого.
DECLARE _RoomID INTEGER ;
SET _dtTodayTmp=NOW();
SET _dtToday=DATE_FORMAT(_dtTodayTmp,"%m/%d/%y");
SET _tmNow=DATE_FORMAT(_dtTodayTmp,"%h:%i:%s");
DECLARE tree_cursor1 CURSOR
FOR SELECT roomid FROM reservationDet rd WHERE rd.status=3 AND rd.compcode=pCompCode;
дает ошибку, поэтому нам нужно сделать это
DECLARE _RoomID INTEGER ;
SET _dtTodayTmp=NOW();
SET _dtToday=DATE_FORMAT(_dtTodayTmp,"%m/%d/%y");
SET _tmNow=DATE_FORMAT(_dtTodayTmp,"%h:%i:%s");
**BEGIN**
DECLARE tree_cursor1 CURSOR
FOR SELECT roomid FROM reservationDet WHERE STATUS = 3 AND compcode = pCompCode ;
URL(fileURLWithPath
вместе с absoluteString
неправильно.
Вы должны написать (обратите внимание на другой инициализатор URL
):
let imgPath = URL(string: documentDirectoryPath.appendingPathComponent("studioframe\(savedImageCount).jpg").absoluteString)
, но это (URL
→ String
→ URL
) очень громоздко, там это гораздо более простое решение, пожалуйста, обратите внимание на разницу между (строковым) путем и URL
let documentDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! // the Documents directory is guaranteed to exist.
let imgURL = documentDirectoryURL.appendingPathComponent("studioframe\(savedImageCount).jpg")
...
try data.write(to: imgURL, options: .atomic)