![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO - большой файл(~184 Мб) в блоб [D7, MSSQL]
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