Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

Обновление DataSet   Найти похожие ветки 

 
Apollo   (2003-12-11 17:05) [0]

Здравствуйте. Проблема у меня такая:
Через ADODataset делаю выборку SQL-запросом из двух баз.
Затем при нажатии на кнопку выполняется следующий код

ADOCommand1.ConnectionString:=...;
ADOCommand1.CommandType:=cmdText;
ADOCommand1.CommandText:="Delete from KontrAgent where ID ="+IntToStr(Org.ID);
ADOCommand1.Execute;

ADODataSet1.Close;
ADODataSet1.Open

После всего этого ADODataSet1 выдает тоже самое, что и до нажатия кнопки. Т.е. ничего не обновилось. :о(
Потом, отдельно делаю ADODataSet1.Refresh и оно обновляется. Если ADODataSet1.Refresh делаю вместо Close-Open не обновляется. :о(
Подскажите, как можно обновить набор данных...

Заранее спасибо.


 
Apollo   (2003-12-16 14:46) [1]

Возможно это из-за длительности выполнения.
Делаю следующий код:

var i:integer;
t1,t2:TDateTime;
begin
i:=ADODataSet1.RecordCount;
ADOCommand1.ConnectionString:=csMain;
ADOCommand1.CommandType:=cmdText;
ADOCommand1.CommandText:="Delete from KontrAgent where ID ="+IntToStr(Org.ID);
ADOCommand1.Execute;

{ TODO :
НЕ РАБОТАЕТ
Посмотри в форуме ответы }
t1:=Time;
while i<=ADODataSet1.RecordCount do
ADOPoluch.Requery;
t2:=Time;
ShowMessage(FormatDateTime("hh:mm:ss.zzz",t1)+#10+
FormatDateTime("hh:mm:ss.zzz",t2)+#10+
FormatDateTime("hh:mm:ss.zzz",t2-t1)+#10);
end;

Получается, что удаление одной записи занимает до 5-6 секунд.

Есть ли другие соображения на этот счет.


 
roottim   (2003-12-16 14:56) [2]

что установлено в ExecuteOptions?


 
roottim   (2003-12-16 14:58) [3]

+ConnectOptions в ADOConnecton


 
sniknik   (2003-12-16 15:05) [4]

в ADOCommand1 и ADODataSet1 один ADOConnecton или разные?


 
Apollo   (2003-12-18 10:47) [5]

--> roottim
ExecuteOption все в False и там и там.
ADOConnection не использую, сразу в ConnectionString пишу.
--> sniknik
ConnectionString у обоих одинаковые.


 
Семен Сорокин   (2003-12-18 10:52) [6]

ADODataSet1.Requery;

from help:

Call Requery to refresh the recordset. Requery updates the dataset by re-executing the original command or SQL statement that produced the recordset.

The effects of Requery are the same as calling the dataset’s Close method and then its Open method. However, there are circumstances when one means of refreshing the recordset is better than the other. The values in properties like CursorLocation, CursorType, and LockType cannot be changed while the dataset is open, so Requery can only refresh the recordset using the existing values in these properties. To refresh the recordset using different values for these properties, effect the refresh using the Close and Open methods.

Options is a TExecuteOptions value that specifies the characteristics of the command execution affected by the requery that produces the recordset for the dataset.


 
Плохиш_   (2003-12-18 11:01) [7]


> Apollo © (18.12.03 10:47) [5]
> --> roottim
> ExecuteOption все в False и там и там.
> ADOConnection не использую, сразу в ConnectionString пишу.

Для каждого создаётся своя Connection

> --> sniknik
> ConnectionString у обоих одинаковые.

А это уже не важно


 
sniknik   (2003-12-18 11:20) [8]

важно, может не в этом случае (в этом все правильно работает), но не раз сдесь были вопросы по странным глюкам именно изза того что не использовался компонент ADOConnection, а прописывались строки.
во всяком случае изменение только этого решало проблему. (что конкретно было не вспомню, даже для одного случая)


 
Apollo   (2003-12-18 17:51) [9]

А если запросы "Select..." хранить непосредственно в базе. А затем подключать их как таблицы? По идее проблему должно решить. Но как по скорости? база у меня предполагается большая, тысяч на 10 записей.


 
Apollo   (2003-12-22 13:15) [10]

--> sniknik
Да, действительно. Поставил ADOConnection на ADOCommand1 и ADODataSet1. После выполнения добавления записи в ADOCommand запись сразу же появляется в DBGrid.

--> All
Спасибо всем.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
3-62993
dim-
2003-12-22 11:10
2004.01.20
как сделать рефреш чтобы меньше время тратилось


1-63171
kdoe
2004-01-10 14:45
2004.01.20
Как добавить программу в автозагрузку виндоса ХР?


1-63072
Dimedrol
2004-01-08 19:02
2004.01.20
Строка внутри *.EXE-файла


1-63203
vgb
2004-01-10 00:09
2004.01.20
TWebBrowser


1-63074
Goida
2004-01-08 17:38
2004.01.20
Как узнать какой формат даты используется в Виндах?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский