Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0 / 2 сообщений из 2, страница 1 из 1
24.08.2016, 19:34
    #39297332
snake32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0
Доброго времени!
Не могу никак заставить TSQLQuery вернуть мне последний вставленный ID
В MySQL WorkBench всё прекрасно отрабатывает а в Delphi XE2 возвращает 0
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    MySQLQuery.SQL.Text := 'INSERT INTO docs (sid, name, ext, data) VALUES (:SID,:NAME,:EXT,:DATA)';
    MySQLQuery.ParamByName('SID').AsInteger := t.sid;
    MySQLQuery.ParamByName('NAME').AsString := t.name;
    MySQLQuery.ParamByName('EXT').AsString := t.ext;
    SetLength( t.data, m.Size );
    Move( m.Memory^, t.data[0], m.Size );
    MySQLQuery.ParamByName('DATA').AsBlob := t.data;
    if MySQLQuery.ExecSQL() = 1 then
    begin
        MySQLQuery.SQL.Text := 'SELECT LAST_INSERT_ID() as ID';
        MySQLQuery.Open;
        if not MySQLQuery.Eof then
        begin
          t.id := MySQLQuery.Fields[0].AsInteger; // всегда 0!
          lbViewFiles.AddItem( t.name+'.'+t.ext, t );
          t := nil;
        end;
    end;
...
Рейтинг: 0 / 0
26.08.2016, 16:43
    #39298735
snake32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0
Решил проблему с помощью транзакции.
Так же можно вроде через хранимые процедуры.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0 / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]