Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADO и "Объект был открыт" / 25 сообщений из 28, страница 1 из 2
24.10.2006, 17:49
    #34078049
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
делаю так:
Код: plaintext
1.
2.
 if  adodataset.active  then  adodataset.close;
adodataset.commandtext:='select * from mytabel';
adodataset.open;
на последней строке ругается типа объект был открыт
что не так в свойствах?
я думаю, может связано с асинхронностью закрытия - как это посмотреть?
пробовал делать и так:

Код: plaintext
1.
2.
3.
 if  adodataset.active  then  adodataset.close;
 while  adodataset.active  do   nil ;
adodataset.commandtext:='select * from mytabel';
adodataset.open;

все равно ругается на последней строке.
при чем абсолютно не всегда, а иногда ругается, иногда нет.
...
Рейтинг: 0 / 0
24.10.2006, 17:52
    #34078064
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Даже не так если пускаешь проект в самой среде разработки (D7)
то выскакивает эта ошибка иногда,
а если пускаешь сам скомпиленый экзешник, то все время
...
Рейтинг: 0 / 0
24.10.2006, 17:53
    #34078073
VirusXP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
попробуй диалоговое окно впаять между закрытием и открытием датасета. Если поможет, то видимо набор не успел ещё закрыться. С формами иногда такое бывает.
З.Ы. ИМХО чтото всё это смахивает на пятницу, хотя вродебы рано ещё :-X
...
Рейтинг: 0 / 0
24.10.2006, 17:55
    #34078075
VirusXP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
может ADO cдохло?
...
Рейтинг: 0 / 0
24.10.2006, 18:06
    #34078120
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Если поможет, то видимо набор не успел ещё закрыться
так вот как дождаться, чтобы оно закрылось?
может пытаться открыть его через try? и если эксепшн, то пытаться снова открыть и так пока не откроется, но это же берд.
а может как-то через события dataset можно остледить закрылось оно или нет?
ща посмотрю, генерит ли закрытие dataset какое-нибудь событие.
...
Рейтинг: 0 / 0
25.10.2006, 11:23
    #34079409
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
HEELP!
Вообще бред!
уже и так делаю:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 procedure  ...
...
 if   not  ADODataSet1Close  then  ADODataSet1.close;
 while   not  ADODataSet1Close  do  sleep( 5 );
ADODataSet1.cpmmandtext:='select * from mytable'
ADODataSet1.open;
 while  ADODataSet1Close  then   do  sleep( 5 );
...
 end ;
...
...
 procedure  TForm1.ADODataSet1AfterClose(DataSet: TDataSet);
 begin 
ADODataSet1Close:=TRUE;
 end ;

 procedure  TForm1.ADODataSet1AfterOpen(DataSet: TDataSet);
 begin 
ADODataSet1Close:=FALSE;
 end ;

запускаю в D7 проект работает (лишь изредка выскакивает 'Объект был открыт')
запускаю экзешник - постоянно выскакивает.
...
Рейтинг: 0 / 0
25.10.2006, 11:27
    #34079429
goodron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
А что тебе мешает сделать без всяких проверок?
ADODataSet1.Close;
ADODataSet1.CommandText := '...';
ADODataSet1.Open;
...
Рейтинг: 0 / 0
25.10.2006, 11:38
    #34079480
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
А что тебе мешает сделать без всяких проверок?
я так сначала и делал но он ругался, что "объект открыт"
решил, может датасет не успевает закрыться а я меняю ему строку ис нова открываю его, поэтому решил поставить проверки
но ошибка все равно осталась
...
Рейтинг: 0 / 0
25.10.2006, 11:46
    #34079506
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
может кто-то знает, где смотреть, чтобы ADO не работала асинхронно?
то есть вот
ADOdataset.close
и чтобы прога стояла пока не закроется набор
может какое-то свойство нужно выставить?
...
Рейтинг: 0 / 0
25.10.2006, 11:53
    #34079536
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
как вариант, делать на каждый запрос отдельный датасет, но это же бред какой-то.
...
Рейтинг: 0 / 0
25.10.2006, 11:53
    #34079539
FlyD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Zazurikможет кто-то знает, где смотреть, чтобы ADO не работала асинхронно?
то есть вот
ADOdataset.close
и чтобы прога стояла пока не закроется набор
может какое-то свойство нужно выставить?
ADOConnection.ConnectOptions ?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25.10.2006, 12:09
    #34079624
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
ADOConnection.ConnectOptions ?
да это оно, НО НЕ помогло пробовал и
coConnectUnspecified и coAsyncConnect все равно ошибка валазит.
...
Рейтинг: 0 / 0
25.10.2006, 13:01
    #34079877
Manfred8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
adodataset.ExecuteOptions ?
...
Рейтинг: 0 / 0
25.10.2006, 13:02
    #34079880
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Е-А-УТЬСЯ!
Ну неужели придется для каждого селекта создавать отдельный датасет?
...
Рейтинг: 0 / 0
25.10.2006, 13:04
    #34079888
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Manfred8adodataset.ExecuteOptions
там везде фальш стоит
...
Рейтинг: 0 / 0
25.10.2006, 13:09
    #34079908
Manfred8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
курсор серверный?
попробуй конекшин закрывать
Код: plaintext
adoconection.close
...
Рейтинг: 0 / 0
25.10.2006, 13:10
    #34079912
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Самое интересное, что в среде разработки ошибка не выскакивает
(точнее выскакивает, но очень очень редко), а когда пускаешь сам экзешник - постоянно выскакивает
...
Рейтинг: 0 / 0
25.10.2006, 13:14
    #34079935
Manfred8
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
кстати,приведи оригинальный текст ошибки. ctr+c на диалоге, ctrl+v сюда =)
...
Рейтинг: 0 / 0
25.10.2006, 13:16
    #34079942
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
вот еще подумал:
есть
1. Microsoft OLE DB Provider for Oracle
2. Oracle Provider for OLE DB
Я при подключении юзаю 2-й (Oracle Provider for OLE DB)
подскажите как правильно прописать connectionstring, чтобы заюзать первый
(может с ним таких проблем не будет) пробую построить стринг через билд - ругается.
И вообще какой лучше из них?
...
Рейтинг: 0 / 0
25.10.2006, 13:27
    #34079993
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Данная ошибка является багом Oracle OLEDB провайдера. Варианты решения в порядке приоритетности:
- отказаться от работы через ADO c Oracle и выбрать компоненты прямого доступа.
- перейти к принципу один TADCommand/TADODataSet/и т.д. - один запрос, т.е. не менять запрос, а создавать дополнительные объекты.
- сменить провайдер на микрософтовский, и поиметь проблемы с блобами и т.д.

Удачи,
Дмитрий

--
AnyDAC ( www.da-soft.com ) - Oracle, MySQL, MSSQL, MSAccess, IBM DB2,
Sybase ASA, DbExpress, ODBC freeware data access framework.
...
Рейтинг: 0 / 0
25.10.2006, 13:30
    #34080007
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
авторкстати,приведи оригинальный текст ошибки. ctr+c на диалоге, ctrl+v сюда =)
http://]/topic/88315&hl=microsoft+ole+db+provider+oracle
Здесь к стати аналогичный трабл описан - тоже не решен.
авторкурсор серверный?
попробуй конекшин закрывать
да серверный (клиентсикй не прокатит - медленно будет работать)
реконнектиться - не вариант (каждый раз перед запросом заново коннеститься - это же тормоза будут дикие :)

Короче абидна пипец, но, видно, придется переписывать всю прогу на DOA.
Е-а-нуться! :).
Две недели конопатился - к стати почему-то раньше такого не было, а вот под конец, когда уже начал по полной тестить такая вот фигня вылезла.
...
Рейтинг: 0 / 0
25.10.2006, 13:34
    #34080028
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
ZazurikКороче абидна пипец, но, видно, придется переписывать всю прогу на DOA.
Е-а-нуться! :).
Две недели конопатился
Переделывание двухнедельного кода - довольно скромная цена за такую глупость как использование ADO.

Отдельным плюсом следует рассмотреть практикум на тему "как писать код так, чтобы подобная переделка осуществлялась легко и просто".
...
Рейтинг: 0 / 0
25.10.2006, 13:40
    #34080056
FlyD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
ZazurikКороче абидна пипец, но, видно, придется переписывать всю прогу на DOA.
Е-а-нуться! :).
Две недели конопатился - к стати почему-то раньше такого не было, а вот под конец, когда уже начал по полной тестить такая вот фигня вылезла.
Поздравляю. Вы наступили на распространенные грабли.
поиск по "Oracle ADO"

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25.10.2006, 14:53
    #34080424
Zazurik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
фух! переделал на DOA!
блин но oraclesession, oracledataset работают гораздооооо!
медленнее, чем ADO, ерунда какая-то! почемууу! :)
...
Рейтинг: 0 / 0
25.10.2006, 15:02
    #34080487
Artemiy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO и "Объект был открыт"
Вот умора. У меня был включен переводчик TranslateIT. Читал ветку, навел мышь случайно на "ADO", дак он мне выдал: ADO - беспокойство, суета, хлопоты, препятствие, затруднение, сложность. ИМХО прямо в точку.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADO и "Объект был открыт" / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]