Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Курсоры и ADO [D6, MSSQL]


Sigetta ©   (2005-10-22 00:03:00) 

Почему при открытом наборе данных ADODataSet с CursorLocation=clUseServer
не выполняются запрос вида 'CREATE TABLE ...' ,
если ADODataSet и ADOQuery принадлежат одному ADOConnection.

ADODataSet.Connection:=ADOConnection1
ADOQuery.Connection:=ADOConnection1
ADODataSet.CursorLocation:=clUseServer

ADODataSet.Open;
ADOQuery.SQL.Add('CREATE TABLE ##Tmp (Data smalldatetime, Nom varchar(10), DSumma float, KSumma float, VOpl varchar(50))');
ADOQuery.ExecSQL;


sniknik   (2005-10-24 13:39:00) [1]

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


Baltika-17   (2005-10-24 13:34:00) [2]


> Просто TADODataSet универсальнее.


Менее универсальный - не значит плохой.


Megabyte   (2005-10-24 13:29:00) [3]


> Baltika-17   (23.10.05 14:27) [7]
> С каких пор TADOQuery стал плох и чем?

Просто TADODataSet универсальнее.


Baltika-17   (2005-10-23 14:27:00) [4]

С каких пор TADOQuery стал плох и чем?


Sigetta   (2005-10-23 00:11:00) [5]

>всегда говорил в ADO три компанента дожны использоваться - конект, датасет, и сомманд

Я читал об этом здесь в форуме. От Table отказался сразу (столкнулся сразу), а вот про "плохость" Query узнал только сейчас.

Спасибо.


sniknik   (2005-10-22 22:13:00) [6]

> Clear перед ADOQuery.SQL.Add делается.
вообщето именно это я и имел ввиду, Clear не был показан. и у TADOCommand  в принципе нету убогой(лишней) надстройки в виде проперти SQL, а в коммандтекст иначе чем перезаписыванием команду не внесеш.

так что (если клер у тебя есть)  дело в чемто другом. но вообшето даже неинтересно в чем ;), ADOQuery не пользуюсь, всегда говорил в ADO три компанента дожны использоваться - конект, датасет, и сомманд (ну и RDS но он и так редок и аналога не имеет), остальное должно быть выкинуто... а раз так... ;)


Sigetta   (2005-10-22 21:16:00) [7]


по какому признаку решил что не выполняется?

не видно в Query Analyzer в tempdb


(пользуйся бы ты "правильным" TADOCommand вместо TADOQuery то так ошибиться было бы невозможно в принципе)

Да с TADOCommand создается.


я бы сказал, что тут ошибка возможно в другом. не очищается компонент от предыдущей команды.


??? Какой компонент? AdoConnection? Нельзя ли поподробнее...
Clear перед ADOQuery.SQL.Add делается.


Anatoly Podgoretsky   (2005-10-22 13:03:00) [8]

ADODataSet.Close; Это не надо и непотно зачем оно в данном коде?


Anatoly Podgoretsky   (2005-10-22 13:02:00) [9]

Должно быть
ADODataSet. Close;
ADOQuery.SQL. Text :='CREATE TABLE ##Tmp (Data smalldatetime, Nom varchar(10), DSumma float, KSumma float, VOpl varchar(50))';


sniknik   (2005-10-22 09:47:00) [10]

по какому признаку решил что не выполняется?

я бы сказал, что тут ошибка возможно в другом. не очищается компонент от предыдущей команды. (пользуйся бы ты "правильным" TADOCommand вместо TADOQuery то так ошибиться было бы невозможно в принципе)


Наверх

Титульная страница Поиск, карта сайта Написать письмо