Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.21;
Скачать: CL | DM;

Вниз

Несколько запросов и временные таблицы в ADO   Найти похожие ветки 

 
ed ©   (2002-01-21 08:39) [0]

Есть проблема:

В Дельфи при использовании компонента TADODataSet:
1) Два и более запроса не выполняются.
2) Создаю временную таблицу и после ее создания, она тут же удаляется

В BDE - наоборот (проблем нет)

Скажите пожалуйста, как выйти из ситуации?


 
KSergey ©   (2002-01-21 09:37) [1]

Ничего не понятно
Что значит не выполняется два запроса? Код.
Какую именно временную таблицу? К стати, какая БД используется? Кокой вы вообще хотели получить ответ без этого уточнения?!


 
Steel Ice   (2002-01-21 10:19) [2]

Вообще ADOшные компоненты - глюкота.
Например попробуй сделать в ADOQuery выборку из базы, в которой нету записей - орет как укушенная. Еще какая-то у них мутная процедура Close у этих компонент. Если при закрытии курсор стоит на последней строчке таблицы, при выполнении Close частенько выдает EOF ошибку.
А удалить или изменить строчку в ADOTable? Кошмар.
Единственная возможноть нормально работать с АДО, делаешь ADOConnection, и через него ADOCommandom выполняешь любые запросы. Результаты возвращаются в Excute:_Recordset.
И таблицы, когда я их через АДОКомманд создавал - не пропадали.
И работает шустренько.


 
Fay-1   (2002-01-22 01:19) [3]

to Steel Ice :
Поставь апдейты для делфей
у меня всё живёт


 
ed ©   (2002-01-24 07:07) [4]

База - MS SQL Server 7 (и выше)

Два запроса = две инструкции
например, код:

delete table1
insert ...

выполняет только первую инструкцию

или

в ADOCommand создаю временную таблицу (select...into #tmptable)
а после делаю апдейт, например, из другого ADOCommand или этого же компонента, поменяв CommandText. Он мне говорит, что нет такой, проверяю - действительно нет. А в ADOConnection один и тот же (вообще один) и в документашке по MS SQL говорится что докальная временная таблица сохраняется пока сессия не закроется.

Можно запрос через сам ADOConnection послать на создание, тогда все работает, но вот беда : он не поддерживает параметры..., а нужны!


 
Delirium ©   (2002-01-24 12:44) [5]

Просто надо пользовать полноценные компоненты - TADOQuery, например, тогда и глюков не будет, и какие угодно команды проходить будут.


 
ed ©   (2002-01-25 07:04) [6]

А вот и нифига подобного. Во-первых, в хелпе написано, что никакой разницы нет между TADOQuery и TADODataSet. Во-вторых,
я на всякий случай попробовал использовать query, но результат оказался тем же самым. В этот раз я пробовал на базе mdb (acceess). Вот код

SQL:
INSERT INTO table1 (id, Name) Values (0, "Name0")
DELETE FROM table1 where id = 0

после ExecSQL ошибка: "Пропущен символ (;) в конце инструкции SQL"

Тогда ставлю в конце инструкции точку с запятой:
INSERT INTO table1 (id, Name) Values (0, "Name0");
DELETE FROM table1 where id = 0

В этом случае другая ошибка: "Обнаружены символы за пределами инструкции SQL"

БЛИН!


 
Delirium ©   (2002-01-25 12:21) [7]

Мы-же по MSSQL вроде говорили, а кто тебе сказал что ACCESS позволяет несколько инструкций подряд исполнять? Ты бы в самом ACCESS сначала попробывал бы, а потом уже на ADO наезжал :)


 
Delirium ©   (2002-01-25 15:08) [8]

И вообще для команд, не возвращающих информацию, существует TADOCommand, а TADOQuery естественно ругаться будет "CommandText does not return a result set"



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

Текущий архив: 2002.02.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
3-66444
sizmara
2002-01-25 14:51
2002.02.21
insert into


1-66628
saviola
2002-02-06 17:51
2002.02.21
Можно ли работать с файлом *.doc как с *.txt или как с типизированным?


1-66547
EsKor
2002-02-05 10:48
2002.02.21
Передача объектов в процедуру/функцию


14-66686
Gayrus
2001-12-27 03:12
2002.02.21
C++ -> Delphi


14-66667
Гаечка
2001-12-20 15:30
2002.02.21
Нужна помощь