Главная страница
    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.013 c
3-65722
nika_ufc
2003-11-02 00:17
2003.11.20
Помогите c ADO


11-65804
Boguslaw
2003-03-03 12:28
2003.11.20
Before GOODWELL


3-65777
IGORYOK
2003-10-30 19:25
2003.11.20
Я слышал БДЕ можно инсталить с какой-то дискетки, которую можно с


3-65760
Alexus
2003-10-31 12:08
2003.11.20
Мастера подскажите ! Допустим есть такая таблица ....


14-66081
Eagle Owl
2003-10-29 19:37
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский