Главная страница
    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
1-63243
Iceburger
2004-01-09 09:47
2004.01.20
MDI-приложения


1-63079
Skipidar
2004-01-10 06:26
2004.01.20
Информация о зарегистрированном типе файла


1-63140
miracle_fox
2004-01-07 15:52
2004.01.20
добавить из файла в richedit


1-63187
Nesh Briges
2004-01-10 01:20
2004.01.20
Изменение регистра символов


1-63108
Anatoliy
2004-01-08 09:00
2004.01.20
Искуственный Интеллект на Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский