Главная страница
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
1-66584
AZ
2002-02-04 07:22
2002.02.21
Связка по Event


4-66704
masha
2001-12-22 02:00
2002.02.21
WIN API


1-66600
MAD
2002-02-06 12:00
2002.02.21
только нужные bpl


1-66614
antoniz
2002-02-06 12:16
2002.02.21
Как сохранить ветку системного реестр в файл


1-66580
MystiX
2002-02-05 19:28
2002.02.21
Help!!!