Поддержу разговор
Microsoft рекомендует:
https://docs.microsoft.com/ru-ru/dotnet ... ber-values
Модератор: Модераторы
Vadim писал(а):Вы что, о языке запросов от меня только что узнали?
Vadim писал(а):У Вас в датасете что, несколько миллионов записей?
olegy123 писал(а):Поддержу разговор
Microsoft рекомендует:
https://docs.microsoft.com/ru-ru/dotnet ... ber-values
Mikhail писал(а):Причем здесь SQL?
Mikhail писал(а):Как минимум заново нужно будет установить курсор, в общем не очень хорошее решение.
Mikhail писал(а):Там речь об ADO, а как через ODBC?
Снег Север писал(а):Здрасьте, я ваша тётя! Ничего, кроме SQL, вам не дает доступа к записям БД.
Снег Север писал(а):Это - единственно верное решение. Ограничивать отбор в датасет и делать ему рефреш.
Снег Север писал(а):Нет никакой разницы, каким способом вы делаете коннект к базе. Дальше уже работает движок базы и ваши SQL-запросы.
Лекс Айрин писал(а):Mikhail, а где уверенность, что база данных за это время не изменилась другой программой?
Mikhail писал(а):Речь о том, что этот метод, вообще говоря, не надежен в общем случае.
Vadim писал(а): SELECT MAX(id) FROM tabl;
И после этого id будет известен...
Mikhail писал(а):Api может позволить несколько больше.
Mikhail писал(а):Единственно верное решение это отрефрешить только нужную запись, а не все в буфере.
Mikhail писал(а):Т.е. ADO API и ODBC API неразличимы?
Cheb писал(а):Намёк: что будет если в эту таблицу за это время добавят из ещё одного потока?
Cheb писал(а):Руки за такое отрывать.
Намёк: что будет если в эту таблицу за это время добавят из ещё одного потока?
Снег Север писал(а):Чего???
Снег Север писал(а):Я не знаю, что такое для вас "буфер", но для большинства движков БД "отрефрешить только нужную запись" - это бессмыслица.
Снег Север писал(а):Какое вам, как юзеру БД, до реализации API??? Это системный, а не пользовательский уровень, юзеру на его вообще лезть противопоказано.
Mikhail писал(а): в таблице имеется автоинкрементное поле, оно же первичный ключ, как получить его значение сразу после вставки?
Query.UsePrimaryKeyAsKey := False;
Query.Insert;
Query.FieldByName('Field1').Value := Value1;
...остальные кроме первичного ключа
Query.Post;
Query.ApplyUpdates;
IdValue := Query.FieldByName('IdKey).AsInteger;
Mikhail писал(а):Бессмыслица это загружать большой набор данных из-за одной записи, а если быть точным из-за одного поля одной записи.
Vadim писал(а):Намёк за что: используется MSACCESS в однопользовательском режиме.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15