Главная страница
    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.47 MB
Время: 0.012 c
1-65860
ovling
2003-11-11 12:19
2003.11.20
Проблема при чтении из файла


14-66115
Иван Шихалев
2003-10-28 21:28
2003.11.20
Навеяло...


7-66138
Shopot
2003-09-08 18:55
2003.11.20
Работа с матричным принтером


14-66062
gee
2003-10-30 10:22
2003.11.20
Дэльфи


4-66173
Alexander
2003-09-23 15:11
2003.11.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский