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

Вниз

ADO + большая транзакция   Найти похожие ветки 

 
Es   (2012-08-20 13:12) [0]

Сейчас вставлял через ADO большую порцию данных. Порядка 100к записей.<br/><br/>1) процесс начинает много жрать памяти, на мой взгляд это не я отжираю. Дошло до потребления 250 MB.<br/><br/>2) на этом этапе (см. пункт 1) отвалилось, EOleException с ошибкой &quot;Неопознанная ошибка&quot;:<br/>http://www.onlinedisk.ru/get_image.php?id=930182<br/><br/>Боюсь, наш любимый ADO не выдержал. Транзакция проводилась без промежуточных коммитов, собственно так и планируется.<br/><br/>Кто-нибудь с таким сталкивался, чего делать?<br/>Или я как-то не так что делаю?


 
sniknik ©   (2012-08-20 14:57) [1]

&gt; Или я как-то не так что делаю?<br/>ставлю на это.


 
Savek   (2012-08-20 15:16) [2]

Я как-то тоже доигрался с ADO до того, что получил ошибку: <br/>&quot;Слишком сложный запрос!&quot;


 
sniknik ©   (2012-08-20 15:27) [3]

при том, что запрос выполняется сервером, а не ADO, очень &quot;в тему&quot;. <br/><br/>вот длинна, там да, ограничена. но там вроде другое сообщение.


 
картман ©   (2012-08-20 16:04) [4]

<i><br/>&gt; вот длинна, там да, ограничена. но там вроде другое сообщение.<br/></i><br/>out of memory выелзало на файле ~200 МБ


 
QAZ   (2012-08-20 16:34) [5]

<i><br/>&gt; чего делать?<br/></i><br/>ну логично предположить, что делать надо несколько раз малыми порциями


 
Anatoly Podgoretsky ©   (2012-08-20 16:41) [6]

Вставляет неизвестно куда, видимо в dbf


 
Es   (2012-08-20 17:04) [7]

sniknik, ты прав.<br/><br/>Делалось в рабочем проекте, нашелся наш глюк.<br/>Всё ок, на самом деле память ADO по мере транзакции не отжирает, 100к влилось успешно. Ошибка возникала, судя по всему, из-за того, что ADO не выдержал сотню тысяч TAdoStoredProc


 
картман ©   (2012-08-20 17:13) [8]

почитаешь - жалко ADO становится, столько всего


 
sniknik ©   (2012-08-20 17:23) [9]

&gt; сотню тысяч TAdoStoredProc<br/>при том, что и это не ADO, а заглушка &quot;от борланда&quot; в мозг привыкшим к BDE...


 
sniknik ©   (2012-08-20 17:26) [10]

&gt; память ADO по мере транзакции не отжирает, 100к влилось успешно.<br/>при серверной транзакции зависит только от серверного же ограничения на &quot;транзакшин лог&quot; (если для mssql).


 
Es   (2012-08-20 17:44) [11]

<i><br/>&gt; при том, что и это не ADO, а заглушка &quot;от борланда&quot; в мозг <br/>&gt; привыкшим к BDE.<br/></i><br/>а что лучше использовать для вызова хранимки в оракле?<br/><br/>Я честно говоря даже не знаю другого способа вызвать хранимку через ADO, кроме использования TADOStoredProc


 
DVM ©   (2012-08-20 17:53) [12]

<i><br/>&gt; Es   (20.08.12 17:44) [11]<br/></i><br/><i><br/>&gt; Я честно говоря даже не знаю другого способа вызвать хранимку <br/>&gt; через ADO, кроме использования TADOStoredProc<br/></i><br/>А TAdoCommand не подойдет?<br/><br/>EXECUTE PROCEDURE MY_PROC(:PARAM1, PARAM2, ... PARAMN)


 
tesseract ©   (2012-08-20 17:58) [13]

<i><br/>&gt; а что лучше использовать для вызова хранимки в оракле?<br/></i><br/><br/>ODAC? Вообще хранимка вызывает через ODBC CALL.


 
sniknik ©   (2012-08-20 18:03) [14]

&gt; А TAdoCommand не подойдет?<br/><br/>&gt; EXECUTE PROCEDURE MY_PROC(:PARAM1, PARAM2, ... PARAMN)<br/><br/>или можно тип запроса на &quot;процедуру&quot; в компоненте (TAdoCommand/TAdoDataSet) поменять и будет 1 в 1 &quot;аля TADOStoredProc&quot;, но без &quot;навесок&quot;.


 
sniknik ©   (2012-08-20 18:06) [15]

+<br/>но вообще, вот так явным EXECUTE PROCEDURE мне больше нравится, мне все явное больше нравиться, пусть иногда изза этого и больше писать приходится.


 
Es   (2012-08-20 18:24) [16]

<i><br/>&gt; А TAdoCommand не подойдет?<br/></i><br/>ну что значит не подойдет...<br/><br/>sniknik объявил, что TAdoStoredProc это мол костыли и грабли для любителей BDE. Может быть...<br/><br/>Собственно, если грамотно задать вопрос... В чем, собственно, костыли и грабли TAdoStoredProc? Чем его использование неэффективно, неграмотно или нечто в таком духе?


 
Es   (2012-08-20 18:25) [17]

<i><br/>&gt; ODAC?<br/></i><br/>имеется в виду в рамках ADO


 
sniknik ©   (2012-08-20 20:18) [18]

&gt; sniknik объявил, что TAdoStoredProc это мол костыли и грабли для любителей BDE.<br/>не ври, я такого не объявлял. а то, что борланд &quot;под BDE/для BDE-истов&quot; сделал парочку компонент, чтобы им бедняжкам не переучиваться, это факт (в справке 5й дельфи это английским по белому прописано, потом изъяли, видимо чтоб не смущать).


 
Sergey Masloff   (2012-08-20 21:58) [19]

Es &#xA0; (20.08.12 18:24) [16]<br/><br/>&gt;Собственно, если грамотно задать вопрос... В чем, собственно, костыли и &gt;грабли TAdoStoredProc? Чем его использование неэффективно<br/>В том что это обертка над TADOCommand ЕДИНСТВЕННОЕ назначение которой - сохранение совместимости классов с BDE. И вобщем-то дело нужное (было) для миграции старых проектов. Но как всякая заплатка сделана видимо на скорую руку. Как уже говорил не работал с ADO вообще но например аналогичная нашлепка TIBStoredProc точно также дико глючила при нормальной работе остальных компонент.<br/> &#xA0;А зачем использовать TxxxStoredProc в новых проектах (не в миграции со старых) я не понимаю


 
Dennis I. Komarov ©   (2012-08-20 22:17) [20]

<i><br/>&gt;  А зачем использовать TxxxStoredProc в новых проектах (не <br/>&gt; в миграции со старых) я не понимаю <br/></i><br/>Очень просто: дословный перевод, говорит о работе с хранимками (таблицами, запросами)...


 
Sergey Masloff   (2012-08-20 22:24) [21]

Dennis I. Komarov © &#xA0; (20.08.12 22:17) [20]<br/>И? продолжи мысль, так непонятно...


 
Dennis I. Komarov ©   (2012-08-20 22:43) [22]

человек, видит &quot;заточенный&quot; компонент... и на кой ему что-то другое?


 
sniknik ©   (2012-08-20 22:56) [23]

&gt; и на кой ему что-то другое?<br/>правильно, нафига? несмотря на то, что 10лет прошло как технология &quot;загнулась&quot;, логика нового основана на других принципах, и т.д., но &quot;знает&quot; компонент, и нового учить не желает...<br/><br/>в общем то, это и есть самый главный глюк &quot;эмуляшек BDE&quot;, все остальное (а были и реальные, в смысле ексепты на последовательность действий ними/вразрез логике), лишь следствия.


 
sniknik ©   (2012-08-20 22:58) [24]

&gt; и нового учить не желает...<br/>хотя... блин, какое новое? ADO в свою очередь уже устарел, стараниями мелкософта, но ведь его так и учат на основе совсем уж окаменевшего гуано.


 
картман ©   (2012-08-21 02:04) [25]

<i><br/>&gt; ADO в свою очередь уже устарел<br/></i><br/>от-ж, блин! А что вместо?


 
Студент   (2012-08-21 05:32) [26]

А если что нибудь такое отправлять?<br/>insert into tabl1(f1,f2,f3) values (1,2,3)(1,2,3)(1,2,3)(1,2,3)(1,2,3)(1,2,3)(1,2,3)(1,2,3)(1,2,3)(1,2,3)


 
Студент   (2012-08-21 05:36) [27]

Студент &#xA0; (21.08.12 05:32) [26]<br/>В свое время такой вариант сильно помог, когда надо было быстро вставить 1 млн записей. База Firebird D7, думаю в Оракле тоже такое должно быть. Экспериментально выяснил что почему то 100 записей лучше всего влетает.


 
Студент   (2012-08-21 06:06) [28]

картман © &#xA0; (21.08.12 02:04) [25]<br/>QtSQL! :-)


 
sniknik ©   (2012-08-21 08:02) [29]

&gt; от-ж, блин! А что вместо?<br/>NET, естественно... (естественно с точки зрения мелкософта). + была еще инфа, что он &quot;возродит&quot; (еще и не умер) ODBC.



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

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

Наверх




Память: 1.1 MB
Время: 0.097 c
2-1331209343
Zheksonz
2012-03-08 16:22
2013.03.22
Формат времени


15-1330507432
ПЛОВ2
2012-02-29 13:23
2013.03.22
CompareText и кирилица


15-1350908665
Grimm375
2012-10-22 16:24
2013.03.22
перевести на английский


2-1332430983
теркин
2012-03-22 19:43
2013.03.22
Представление двухмерного массива в виде динамического списка


6-1263641367
RokWeb
2010-01-16 14:29
2013.03.22
Отправка пакета по сети(Winsock2).