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

Вниз

данные из ADODataSet пропадают после закрытия соединения, ПОЧЕМУ?   Найти похожие ветки 

 
DmTM   (2003-10-30 12:59) [0]

var
CNN: TADOConnection;
PCNN: TADOConnection;
DS: TADODataSet;
begin
CNN:=TADOConnection.Create(.....
создали, открыли
PCNN:=CNN; //запомнили указатель

DS.Connection:=PCNN;
//поработали, получили данные

CNN.Close;
CNN.Free;

Почему соединение прихватывает с собой все наборы данных которые получены через него? Я ожидал что смогу работать (чтение) с полученными данными?

Я конечно видел CNN.Commands(i) и прочее,
но как тогда возможно DS:=TADODataSet.Create?


 
analyser   (2003-10-30 13:46) [1]

Если под: "соединение прихватывает с собой все наборы данных которые получены через него" понимается, что закрываются все НД, ассоциированные с Connection, то ответ в Help:

Call Close to disconnect from the source of database information. Before the connection component is deactivated, all associated datasets are closed.

Sorry, Если речь о другом...


 
DmTM   (2003-10-30 13:51) [2]

Именно об этом. ПОЧЕМУ?
и использование указателя не помогает


 
sniknik   (2003-10-30 14:02) [3]

DmTM (30.10.03 13:51) [2]
ты закрываеш обьект на который указывает указатель, и после удивляешся что по второй копии указателя произошло то же самое?
вот это действительно удивительно, ПОЧЕМУ ты удивляешся?


 
DmTM   (2003-10-30 14:24) [4]

А набор данных, который уже получен, тут при чем?
Ну и пускай себе закрывается соединение. И уничтожается сам объект соединения. DS - это же отдельный объект, который хранит указатель (= номер ячейки в памяти) на соединение.
Вот я и спрашиваю ПОЧЕМУ и ЗАЧЕМ закрывать все наборы данных.

тут похоже что-то с особенностями com-объектов, но я про них недостаточно знаю


 
sniknik   (2003-10-30 14:49) [5]

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

кстати, DataSet это не отдельный обьект. (это иллюзия созданная дельфями ;о))
если у тебя стоит офис найди файл ADO210.CHM на своей машине и почитай (я бы положил сюда структуру но она в картинке там а переписывать влом)


 
DmTM   (2003-10-30 14:56) [6]

>DataSet это не отдельный обьект. (это иллюзия созданная дельфями ;о))

ага! я так и думал! спасибо
вобщем-то давно решил проблему клонированием,
но сегодня что-то рассердился

НО, если посмотреть на АДО.НЕТ
там вроде как можно такое, если не ошибаюсь?


 
Delirium   (2003-10-30 15:04) [7]

var
CNN: TADOConnection;
PCNN: TADOConnection;
DS: TADODataSet;
begin
CNN:=TADOConnection.Create(.....
DS.Connection:=CNN;
DS.Open; //получили данные
DS.Connection:=nil; //коннекшен оборвали, а данные остались
CNN.Close;
CNN.Free;

DS. ... // поработали


 
DmTM   (2003-10-31 07:30) [8]

to Delirium: а ведь работает

блин, вот всегда у меня так
вариант
DS.Connection:=nil;
был с самого начала, только у меня довольно сложные классы над
TADODataSet и TADOConnection
а я, блин, не к тому типу приводил указатель!

а уже и клонирование реализовал, блин и сохранение состояния

ладно, оптимизируем

всем спасибо



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

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

Наверх




Память: 0.46 MB
Время: 0.011 c
1-66001
alexey_gorbunkov
2003-11-11 18:02
2003.11.20
Проблемы с


1-65991
Слэш2
2003-11-10 15:22
2003.11.20
FormStyle поменять назад


7-66139
Ghost_
2003-09-11 20:27
2003.11.20
Pomogite s prerivaniem v DOS


1-65947
staryx
2003-11-11 12:32
2003.11.20
Отслеживание мыши.


11-65811
tamerlan311
2003-03-03 15:06
2003.11.20
list view





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