![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TADOconnection. Как выключить автоcommit ?
SergP. © (2006-08-30 12:45:00)Делаю
Adocommand.CommandText:='delete from zregdoc';
Adocommand.Execute;
после чего таблица очищается (смотрел из другой сессии), хотя commit я не делал...
Как сделать чтобы commit автоматически не срабатывал? Что-то у TAdoconnection таких свойств не нашел.
ANB (2006-08-30 15:19:00) [21]
> > Sys_Refcursor
> ничего не говорит... либо нет, либо по другому называется
> (ассоциаций нет).
Это возращаемый из хранимки курсор набора данных. Примерчик :
function Select_Pop3
return Sys_Refcursor is
v_Header varchar2 (255 char) := 'mail.pop3';
v_Result Sys_Refcursor;
begin
open v_Result for
select Num, max (case
when last = 'server' then Param_Value
else null
end) Server, max (case
when last = 'account' then Param_Value
else null
end) Account, max (case
when last = 'password' then Param_Value
else null
end) Password
from (select substr (substr (Param_Name, 1, instr (Param_Name, '}') - 1), instr (Param_Name, '{') + 1) Num,
substr (Param_Name, instr (Param_Name, '}') + 2) last, Param_Value
from Common$Configuration
where Param_Name like v_Header || '.%')
group by Num
order by Num;
return v_Result;
end Select_Pop3;
Сам запрос можно сгенерить и в виде строки прямо на оракле.
ОДАК такие функции нормально распознает и позволяет сделать open, получив набор данных. Очень удобно.
sniknik (2006-08-30 15:17:00) [22]> Запусти ее с помощью ADO и попробуй выгрести все сообщения от этой хранимки.
см. в connections коллекция errors для каждого связанного рекордсета... подавляется только пустые при команде SET NOCOUNT ON (но тут претензий быть не может, не придирешся же на отсутствие ошибок если сам вставил пустой(без обработки) блок try except...)
sniknik (2006-08-30 15:13:00) [23]> Sys_Refcursor
ничего не говорит... либо нет, либо по другому называется (ассоциаций нет).
> Кстати, ADO даже с родным MS SQL работает хреново.
ну надо же! а я и не знал... это ты сам придумал, или сказал кто? (при полном его незнании... lol)
ANB (2006-08-30 15:13:00) [24]
> Fay © (30.08.06 15:10) [30]
напиши хранимку, которая будет работать часа 4 и при этом время от времени вываливать ошибки (типа не могу вставить нулл в нот налловое поле), принты и селекты.
Запусти ее с помощью ADO и попробуй выгрести всесообщения от этой хранимки.
Удачи.
Fay (2006-08-30 15:10:00) [25]2 ANB © (30.08.06 14:49) [29]
Если можно, примерчик корявости, pls.
Для меня и ещё двух весёлых друзей...
ANB (2006-08-30 14:49:00) [26]Кстати, ADO даже с родным MS SQL работает хреново. Только ADO.NET более менее адекватно.
ANB (2006-08-30 14:48:00) [27]
> реф????? это что?
Sys_Refcursor
sniknik (2006-08-30 14:17:00) [28]> Кстати, оракл BEGIN TRANSACTION не поддерживает.
неважно, не в этом виде, но каманды быть должны, посмотреть доки на предмет какие точно стартуют там транзакцию... а заодно почитать про ее "фенечки" только ораклу присущие. (будет полезнее чем просто ставить BeginTran)
> Кстати, как там у ADO с реф.курсорами ?
реф ?????это что?
SergP. (2006-08-30 14:02:00) [29]> [21] Fay © (30.08.06 13:52)
> 2 SergP. (30.08.06 13:51) [20]
> А просто нормальные компоненты не устраивают?
Просто сторонние компоненты (которые не входят в стандартную поставку Дельфи) я стараюсь не использовать... Использую только в крайнем случае. В данном случае использовал бы если бы там был прямой доступ. А иначе - зачем? В таком случае и ADO подойдет... По крайней мере его возможности мне хватит. ну разве что о прямом доступе придется забыть...
SergP. (2006-08-30 13:56:00) [30]> Попробуй через ADO зарефрешеть одну запись в наборе данных.
> Или отредактировать набор данных, собранный джойном из 5
> таблиц. Кстати, ораклу не нужна команда на начало транзакции,
> она начинается при любом операторе DML. И коммит ты можешь
> выдать, когда захочешь.
> Ну а уж такую фичу, как автоматическое обновление записи
> при ее изменении из другой сессии (смарт рефреш) умеет только
> одак делать.
Вроде из перечисленного мне ничего и не требуется...
SergP. (2006-08-30 13:53:00) [31]> 2 SergP. (30.08.06 13:48) [15]
> Судя по использованию ADO, "супер-прямой" достум тебя мало
> волнует... Возьми AnyDAC, не мучай себя.
Просто я сначала не задумывался над такой возможностью.
но пост:
> [3] ANB © (30.08.06 12:56)
>
> > SergP. (30.08.06 12:45)
>
> Какой изгал. Возьми компоненты прямого доступа и не мучайся.
очень заинтересовал меня...
ANB (2006-08-30 13:53:00) [32]Кстати, как там у ADO с реф.курсорами ?
ANB (2006-08-30 13:52:00) [33]
> SergP. (30.08.06 13:49) [17]
Попробуй через ADO зарефрешеть одну запись в наборе данных. Или отредактировать набор данных, собранный джойном из 5 таблиц. Кстати, ораклу не нужна команда на начало транзакции, она начинается при любом операторе DML. И коммит ты можешь выдать, когда захочешь.
Ну а уж такую фичу, как автоматическое обновление записи при ее изменении из другой сессии (смарт рефреш) умеет только одак делать.
Fay (2006-08-30 13:52:00) [34]2 SergP. (30.08.06 13:51) [20]
А просто нормальные компоненты не устраивают?
SergP. (2006-08-30 13:51:00) [35]> И ADO это умеет ?????
Ну естественно нет...
Просто начал писать используя ADO, но если бы нашлись бесплатные компоненты для прямого доступа, то переделал бы...
Fay (2006-08-30 13:51:00) [36]2 SergP. (30.08.06 13:48) [15]
Судя по использованию ADO, "супер-прямой" достум тебя мало волнует... Возьми AnyDAC, не мучай себя.
ANB (2006-08-30 13:49:00) [37]
> Просто прога получилась бы удобнее...
И глючнее.
SergP. (2006-08-30 13:49:00) [38]> Работать с ораклом через ADO - потерять приличное количество
> возможностей.
Можно поинтересоваться, каких?
ANB (2006-08-30 13:49:00) [39]
> Под компонентами прямого доступа я понимаю такие, где бы
> не требовалась установка клиента Оракла, т.е. которые работали
> бы напрямую с сервером...
И ADO это умеет ?????
Кстати, умные люди весьма не советуют работать в обход клиента.
А компонентами прямого доступа я обычно называю компоненты, которые работают напрямую с OCI, без виндовых прослоек.
SergP. (2006-08-30 13:48:00) [40]> [13] Fay © (30.08.06 13:43)
> 2 SergP. (30.08.06 13:40) [11]
> > а что нужно качать?
> Ничего не качай - тебе подходит только ODAC. Или JDBC 8)
Просто я качал из-за того что когда-то (года 3 назад) находил компоненты именно прмямого доступа. Не помню где... Правда там имелись небольшие глюки... Но зато никаких клиентов не нужно ставить. Указал логин/пароль/базу/имя или IP сервера/порт и все.
Думал что это нечто подобное... Просто прога получилась бы удобнее...