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

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

ADO - большой файл(~184 Мб) в блоб [D7, MSSQL]


Страницы:   1 2

Gin2 ©   (2007-02-09 15:55:00) 

Мастера, загружаю в базу файл:

...
 if not OpenDialog1.Execute() then
 begin
   Exit;
 end;
 ADOCommand1.Parameters.ParamByName('FileData').LoadFromFile(OpenDialog1.FileName , ftVarBytes);
 ADOCommand1.Execute();
...

СУБД - MSQL 2000 SP4+hot fixes. D7. Вываливается ошибка -

Project Project1.exe raised exception class EOleException with message 'Неопознанная ошибка'. Process stopped. Use Step or Run to continue.

Кто борол?


Gin2   (2007-02-12 16:57:00) [1]

не пробовал.
Выяснилось что если блоб заполнять через ХП, как это делает провайдер при использовании параметров, то MS SQL тянет на сервер всю блобину в буфер...
Вот как послать запрос без ХП не понятно :(


Ломброзо   (2007-02-12 16:51:00) [2]

А через ADODB.Stream, кусочками, байтовыми массивами, не пробовали?


Gin2   (2007-02-12 15:48:00) [3]

Кто знает, как заставить TADOCommand при update не оборачивать в sp_executesql запрос? Или это провайдер делает?


Gin2   (2007-02-09 18:20:00) [4]


> >> в смысле, ты похоже на сервер ложиш с локальной станции?
>
> > да

ну в смысле у меня сервак MS SQL и моя комп - это одна и таже физически тачка :)


sniknik   (2007-02-09 18:18:00) [5]

>> в смысле, ты похоже на сервер ложиш с локальной станции?
> да
т.е. у тебя 2 машины задействовано рабочая станция и сервер. тогда еше сеть добавляется (операция длительная...)  попробуй сменить протокол с named pipes на tcp/ip (или наоборот, смотря что счас стоит).


Gin2   (2007-02-09 17:58:00) [6]


> в смысле, ты похоже на сервер ложиш с локальной станции?

да


Gin2   (2007-02-09 17:57:00) [7]


> sniknik ©   (09.02.07 17:53) [30]

тоже девелопер и тоже локально, но у меня максимум можно 991 Мб можно выделить.


sniknik   (2007-02-09 17:54:00) [8]

+ [30] в смысле, ты похоже на сервер ложиш с локальной станции?


sniknik   (2007-02-09 17:53:00) [9]

> а какие у тебя настройки сервера по памяти? и какой сервак?
у меня mssql не на сервере а на моей же машине, тот на котором эксперементирую. (может проблема в этом? операция длительная и конект у тебя во время нее "рвется")

2000й mssql (девелопер) на winxp, апдейты все стоят.
настройки mssql-я как поставились стандартные так и не менялись (кроме авторизации, включена mssql-ная) по памяти динамическое распределение, минимум 0 максимульное 1055, найдено(определено, внизу там) 1024.


Gin2   (2007-02-09 17:32:00) [10]

Взял я выгрузил из ОЗУ почти весь левак и файл 184 лег, больше - опять таже трабла. Можно ли как-то узнать у сервера, какой размер он сможет принять? Или нет?
Спасибо.


Gin2   (2007-02-09 17:18:00) [11]


> sniknik ©   (09.02.07 17:05) [25]

а какие у тебя настройки сервера по памяти? и какой сервак?


Gin2   (2007-02-09 17:17:00) [12]

Полез я в логи сервера:

2007-02-09 16:12:31.21 spid54    WARNING:  Failed to reserve contiguous memory of Size= 265551872.
2007-02-09 16:12:31.46 spid54    Buffer Distribution:  Stolen=64570 Free=6 Procedures=0
 Inram=0 Dirty=2 Kept=0
 I/O=0, Latched=19, Other=3
2007-02-09 16:12:31.46 spid54    Buffer Counts:  Commited=64600 Target=64816 Hashed=24
 InternalReservation=127 ExternalReservation=0 Min Free=128 Visible= 64816
2007-02-09 16:12:31.46 spid54    Procedure Cache:  TotalProcs=0 TotalPages=0 InUsePages=0
2007-02-09 16:12:31.46 spid54    Dynamic Memory Manager:  Stolen=64570 OS Reserved=768
 OS Committed=743
 OS In Use=737
 Query Plan=1 Optimizer=0
 General=822
 Utilities=11 Connection=64437
2007-02-09 16:12:31.51 spid54    Global Memory Objects:  Resource=732 Locks=35
 SQLCache=23 Replication=2
 LockBytes=2 ServerGlobal=20
 Xact=3
2007-02-09 16:12:31.51 spid54    Query Memory Manager:  Grants=0 Waiting=0 Maximum=47700 Available=47700
2007-02-09 16:12:32.21 spid54    Error: 17803, Severity: 20, State: 12
2007-02-09 16:12:32.21 spid54    Insufficient memory available..

Такое ощущение что ему не хватает ОЗУ :(


sniknik   (2007-02-09 17:13:00) [13]

хотя, сам проверил поставил ftVarBytes... также все положилось (184мг)
не от этого похоже.


sniknik   (2007-02-09 17:05:00) [14]

все нормально... вернее ничего неожиданного/неизвестного, первым попробовал файл 638мг дало Out Of Memory (ну чтож на работе памяти поменьше всего 1 гиг. понятно в общем)
вторым взял на 184мг, его положило без проблем, запрос типа твоего
(UPDATE name
SET Img = :Img
WHERE ID = 10)

>> пока тоже проверь, ftVarBytes на ftBlob поменяй.
> тоже самое.
а тип параметра? везде поставь.


Gin2   (2007-02-09 16:53:00) [15]


> Ega23 ©   (09.02.07 16:52) [23]

та с удовольствием :)
надо через компоненты...


Ega23   (2007-02-09 16:52:00) [16]


> это хорошо, но мне нужно через компоненты.


Ну как хочешь...


Gin2   (2007-02-09 16:51:00) [17]

поробовал 250 метров залить - Out of memory :(


Gin2   (2007-02-09 16:47:00) [18]


> Ega23 ©   (09.02.07 16:34) [17]
>
> bcp /?

это хорошо, но мне нужно через компоненты.


Gin2   (2007-02-09 16:46:00) [19]


> пока тоже проверь, ftVarBytes на ftBlob поменяй.

тоже самое.


Gin2   (2007-02-09 16:44:00) [20]


>
> да еще напомнил, ошибка "Неопознанная ошибка"  ничего не
> говорящая, попробуй из коллекции ADOConnection.Errors вытащить,
>  может там понятнее будет.

Ошибок одна.
Error:
Number: -2147467259
Source: 'Microsoft OLE DB Provider for SQL Server'
Description: 'Неопознанная ошибка'
HelpFile: ''
HelpContext: 0
SQLState: ''
NativeError: 0


Страницы:   1 2

Наверх

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