![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
KOLEDB:MEMO поля
Alec © (2005-02-11 12:11:00)Можно ли в KOLedb использовать MEMO- поля? Если да, то как? При использовании как обычные поля вылетает ошибка "Out memmory" при GetMem для буфера строки в DataFetch. Да и размер буфера дейтвительно агромадный.
Alec (2005-02-11 16:51:00) [1]fRowSize=1073742876
Alec (2005-02-11 16:48:00) [2]Не тож миллионы.
Alec (2005-02-11 16:17:00) [3]Почему-то в отдельном проекте fRowSize несколько тысяч, а на той же базе внутри моей DLL миллионы.
Alec (2005-02-11 16:12:00) [4]Может проблема в том, что это все работает внутри dll. Вернее внутри DLL не работает, а просто EXE работает.
Alec (2005-02-11 16:02:00) [5]Open проходит полностью, в конце вызывается First из него Next, и уже в нем в FatchData есть GetMem( Buffer, fRowSize );
И fRowSize=0x2FFB124 и на нем возникает ошибка.
Кстати попробовал пустой проект - читается ентот MEMO.
ECM (2005-02-11 15:28:00) [6]Посмотри какие параметры получаются на входе AllocMem в TQuery.Open...?
Если это не натолкнет на причину - зашли мне на мыло минимальный
проект(лишь бы эффект проявлялся)+таблицу
Alec (2005-02-11 15:08:00) [7]Код
if dts = Nil then
dts:=NewDataSource(CNN_STR +cnn_pth + cnn_fil);
if cnn = nil then
cnn:=NewSession(dts);
rst:=NewQuery(cnn);
rst.Text:='select * from cats';
rst.Open; //<-- Тут ошибка Out of memmory
Таблица cats (MS Access)
ID counter
cat Text(255)
val Memo
Записей 1-10 (пока)
Трассирую по исходникам и в момент Getmem для буфера одной (очевидно первой) записи ошибка и вылетает.
ECM (2005-02-11 14:30:00) [8]Приведи код ...
С какой структурой таблиц(ы) работаешь?
Сколько записей в таблице?
Alec (2005-02-11 14:11:00) [9]I use KOLedb and I don't want change it, because future update by Kladov.
Alec (2005-02-11 14:10:00) [10]I use KOLedb and I don't want change it, because future update by Kladov.
thaddy (2005-02-11 14:01:00) [11]You should use coTaskMemAlloc and coTaskMemFree, not getmem/freemem (unless you use my commm.pas). It should be com marshalled memory.