Использую TMySQL50Connection, TSQLTransaction и TSQLQuery.
В приведённом запросе на втором ExecSQL - ошибка - исключение EDatabase Error
Затем идет сообщение, что "Cannot open a non-select statement"
- Код: Выделить всё
procedure TDM.MakeMonthTable(_Date: TDate; _Level: Integer);
var Y, M: Integer;
i: Integer;
begin
Y := YearOf(_Date);
M := MonthOf(_Date);
qTmp.SQL.Clear;
qTmp.SQL.Add('TRUNCATE months;');
qTmp.ExecSQL;
qTmp.SQL.Clear;
qTmp.SQL.Add('INSERT INTO months(Yb, Mb) VALUES');
for i := 1 to _Level-1 do begin
qTmp.SQL.Add(Format('(%d, %d),', [Y, M]));
_Date := SysUtils.IncMonth(_Date, -1);
Y := YearOf(_Date);
M := MonthOf(_Date);
end;
qTmp.SQL.Add(Format('(%d, %d);', [Y, M]));
qTmp.ExecSQL;
qTmp.Open;
end;
Содержание выполняемого SQL
- Код: Выделить всё
INSERT INTO months(Yb, Mb) VALUES
(2011, 6);
Что не так я делаю?
Lazarus v0.9.31
FPC 2.4.4
SVN: 31267
i386-win32-win32/win64