Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Вниз

О визуализации большого текста   Найти похожие ветки 

 
buka   (2008-01-11 15:45) [0]

Здравствуйте.
Зписан в базу текст большого объема. Ни DBRich, ни DBMemo, ни DBGrid не позволяет его увидеть.
Как можно визуализировать?
Использовал Access 2003.
В нем - видно, но я же хочу читать с использованием компонентов Delphi?
Что пдскажете мастера?


 
clickmaker ©   (2008-01-11 15:50) [1]


> buka   (11.01.08 15:45)
> Здравствуйте.
> Зписан в базу текст большого объема. Ни DBRich, ни DBMemo,
> ни DBGrid не позволяет его увидеть

то есть? так и говорят "не позволяем"?


 
Dib@zol ©   (2008-01-11 15:50) [2]

В порядке бреда: Panel + Canvas + DrawText?


 
sniknik ©   (2008-01-11 15:50) [3]

> Ни DBRich, ни DBMemo, ни DBGrid не позволяет его увидеть.
вранье.


 
Ega23 ©   (2008-01-11 15:56) [4]


> Как можно визуализировать?


Легко.
Просто всё, что больше 255 символов в стандартных Delphi-компонентах  трактуется как BLOB (если мне память не изменяет)


 
www   (2008-01-11 16:26) [5]

LoadFromStream


 
clickmaker ©   (2008-01-11 16:33) [6]


> Просто всё, что больше 255 символов в стандартных Delphi-компонентах
>  трактуется как BLOB

это, если БДЕ
в АДО хоть 8000, если тип поля явно не указан


 
Ega23 ©   (2008-01-11 16:36) [7]


> это, если БДЕ
> в АДО хоть 8000, если тип поля явно не указан


Я не про доступ, я про DBGrid.


 
Ega23 ©   (2008-01-11 16:37) [8]

Хотя может и ошибаюсь.
В любом случае, у меня сильное подозрение, что автор именно BDE использует.


 
buka   (2008-01-12 13:55) [9]

Я использую ADO, а тип базы, таблицы в которую пытаюсь записать тексты -Аccess/
Таблица Access 2003; с полем формат OLE (а как иначе априори "впихнешь" туда текст более 255 знаков).
Открываю таблицу Access (не через Delphi, а напрямую из Access- вижу: в тех ячейках где короткий текст -нормально читается и rtf и html и прочее,а в поле OLE написало BLOB. Все это жидаемо. Более того, дважды щелчок по этому полю таблицы Access - появляется нормально, полностью читаемый текст в соответствующем приложении.
Однако мне нужно читать его средставми визуализации DELPHI.
И вот тут...короткие тексты в DBGrid, DBRichEdit-читаются нормально, а длинный (поля BLOB) так и пишет BLOB.
Вот я и хочу чтобы кто-либо подсказал: какой компонент необходимо использовать или что надо сделать, чтобы из DELPI читать поля BLOB.
Я вразумительно объяснил?


 
homm ©   (2008-01-12 14:28) [10]

> [0] buka   (11.01.08 15:45)

такие идиотские вопросы появляются только от ботонокидательства.


 
buka   (2008-01-12 14:31) [11]

Мне кажется я попал в раздел "Начинающих"?
Порекомендуйте где находится раздел "Для идиотов" или "Ботонокидал", если Вы считаете что мне нужно обратиться туда.


 
buka   (2008-01-12 14:35) [12]

Ega 23.
Мне понятно ваше пояснение. Именно так. Но дальше...
Он (DBRichEdit) и рисует в своем окне BLOB.
А я-то хочу видеть ТЕКСТ... например "HOMM-XAM!"


 
homm ©   (2008-01-12 14:53) [13]

> [11] buka   (12.01.08 14:31)

Для начала можно озвучить размер данных?


 
homm ©   (2008-01-12 14:56) [14]

> [12] buka   (12.01.08 14:35)
> Он (DBRichEdit) и рисует в своем окне BLOB.

Интересно, какая разница, если он рисует BLOB как текст, а в BLOBе текст?


 
homm ©   (2008-01-12 14:59) [15]

> Я использую ADO, а тип базы, таблицы в которую пытаюсь записать
> тексты -Аccess/
> Таблица Access 2003; с полем формат OLE (а как иначе априори
> "впихнешь" туда текст более 255 знаков).

Что то слабо верится, что в Аccess нет формата поля для текста длинее 256 символов.


 
buka   (2008-01-12 14:59) [16]

Размер данных, кстати, не такой уж и большой текст около 150 кб.
Для Homma: разница в том, что мне нужен текст, а не фраза "blob"


 
homm ©   (2008-01-12 15:01) [17]

> [9] buka   (12.01.08 13:55)
> И вот тут...короткие тексты в DBGrid, DBRichEdit-читаются
> нормально, а длинный (поля BLOB) так и пишет BLOB.

Дак у тебя в BLOB OLE документы, что ли? Ой, мать…


 
buka   (2008-01-12 15:03) [18]

Ага. Именно документы я и хочу впихнуть в базу (таблицу) к которой можно обращаться и затем извлекать для чтения.


 
buka   (2008-01-12 15:04) [19]

А мама причем?


 
homm ©   (2008-01-12 15:05) [20]

> [18] buka   (12.01.08 15:03)

А что ты мозги трахаешь всем с длинным текстом?


 
homm ©   (2008-01-12 15:06) [21]

> [19] buka   (12.01.08 15:04)
> А мама причем?

Чья?


 
engine ©   (2008-01-12 15:07) [22]

> [18] buka   (12.01.08 15:03)

SaveToFile


 
buka   (2008-01-12 15:07) [23]

Ды-к, это Вам лучше знать, т.к. именно Вы её в 17-м посте вспомнили


 
buka   (2008-01-12 15:10) [24]

Что SaveToFile?
Пропобовал: пишет Not found, хотя весь путь для него прописал.


 
buka   (2008-01-12 15:13) [25]

Ну ладно.
Обстоятельства требуют ухода.
Если что надумаете -прочту позже.
Пока "мастера".... :(:(


 
engine ©   (2008-01-12 15:13) [26]

> [24] buka   (12.01.08 15:10)

ParamByName("MyBLOBField").SaveToFile("c:\FromBLOB.xxx")


 
engine ©   (2008-01-12 15:14) [27]

> [26] engine ©   (12.01.08 15:13)
> ParamByName("MyBLOBField").SaveToFile("c:\FromBLOB.xxx")

FieldByName


 
buka   (2008-01-12 15:17) [28]

Engine. Спасибо. Успел прочитать перд выклюячением. Буду посмотреть.


 
sniknik ©   (2008-01-12 16:11) [29]

> Я вразумительно объяснил?
цены бы тебе не было, еслибы это в первом посте было, чтобы сразу было ясно что поле не текстовое а ole, что хранится там тоже не текст, а "OLE документы".

и еще обьяснил бы что делаешь (а не как), чтобы узнать а нужно ли тебе это все, или ты просто не знаеш формата поля "текстовый"... или еще чего.
и пытаешься "микроскопом гвозди заколачивать".
что например должен делать искомый компонент отображения текста из этого поля, если в данных будет не текст, и даже не текстовый документ, а картинка? или какая нибудь схема маткада, презентация, т.д.?
хотя, вобще то компонент есть - TOLEContainer, читаешь из поля в стрим, из стрима в него... по идее должно открыть "в соответствующем приложении", только внутри контейнера. (хотя не пробовал, может не получится)

> Пока "мастера".... :(:(
пока ламер... :(:(


 
Anatoly Podgoretsky ©   (2008-01-12 16:59) [30]

> buka  (12.01.2008 14:31:11)  [11]

К сожалению у нас такого раздела нет.


 
Amoeba ©   (2008-01-12 20:19) [31]


> вобще то компонент есть - TOLEContainer

Даже TDBOleContainer существует в природе. С ним еще проще.


 
homm ©   (2008-01-12 20:38) [32]

> [31] Amoeba ©   (12.01.08 20:19)
> Даже TDBOleContainer существует в природе. С ним еще проще.

Только вопрос в том, нужен ли он автору. Вроде как ему просто формат поля большого размера подошел бы больше.


 
buka   (2008-01-12 20:54) [33]

Еще раз пробую.
Мне нужно в базе данныъ хранить книги; выбрал - Access.
Доступ к ней хочу получить средствами Delphi.
Поля в таблице: автор, название, содержание.
Если первые два прекрасно набд.даются через DBRichEdit, например, то третье по объему принимаемой информации не может быть ни чем иным как blob.
Ну вот и наблюдается в RichEdit вместо текста слово "BLOB".
А сейчас понятно?


 
homm ©   (2008-01-12 20:58) [34]

> [33] buka   (12.01.08 20:54)
> третье по объему принимаемой информации не может быть ни
> чем иным как blob

Ага?


 
sniknik ©   (2008-01-12 21:14) [35]

нда уж, он не только
> не знает формата поля "текстовый"
он его и знать не хочет. BLOB и никаких гвоздей!
тебе это партия подсказала?


 
homm ©   (2008-01-12 21:21) [36]

> [35] sniknik ©   (12.01.08 21:14)

Блин, а ведь в справке про тип «MEMO» сказано: Up to 65,535 characters. (If the Memo field is manipulated through DAO and only text and numbers [not binary data] will be stored in it, then the size of the Memo field is limited by the size of the database.)

Т.е. 65кб. Но если ктонить скажет что значит «manipulated through DAO» (я имею ввиду не перевод, а механизм) то можно и больше.


 
sniknik ©   (2008-01-12 21:42) [37]

> Up to 65,535 characters.
хм... счас проверю,
т.к. помню что до 2гигов (вся база), но так как храниться только в юникоде то "полезного текста" получается не больше гига.

> «manipulated through DAO»
устарело, это был такой доступ (обьект) до Jet-а, и немного параллельно. закрыли на версии 3.6 тем, что все переправили вызовы через jet.


 
homm ©   (2008-01-12 21:49) [38]

> [37] sniknik ©   (12.01.08 21:42)
> но так как храниться только в юникоде то "полезного текста

Т.е. как я понял, 64К это ограничение окна, оторажающего текст в самой оболочке аксеса? А если цепляемся через SQL, то берем до гига?


 
sniknik ©   (2008-01-12 21:52) [39]

хелп у тебя старый. внес 5242880 символов, даже учитывая деление пополам...


 
homm ©   (2008-01-12 21:55) [40]

> [39] sniknik ©   (12.01.08 21:52)
> хелп у тебя старый

Access 2003, F1 :)


 
sniknik ©   (2008-01-12 21:55) [41]

> 64К это ограничение окна, оторажающего текст в самой оболочке аксеса?
не, открыл аксесом, ткнул в поле,  он честно все попытался вывести... правда вернул ошибку о нехватке памяти.


 
sniknik ©   (2008-01-12 21:56) [42]

> Access 2003, F1 :)
аналогично, и тоже нашел... ;о(


 
homm ©   (2008-01-12 22:02) [43]

> [41] sniknik ©   (12.01.08 21:55)
> правда вернул ошибку о нехватке памяти.

Ух эти программисты майкрософт, они такие скромняги ;) Они же стесняются написать, что были слишком ленивы в 95-м, что бы сделать нормальное окно редактора текста типа Memo, и сишком ленивы сейчас, чтобы сувать в аксес что то отличное, чем от стандартного редактора текста :)


 
sniknik ©   (2008-01-12 22:09) [44]

> стандартного редактора текста :)
стандартный берет больше, и уже давно. это раньше, в 98м, у нотепада было 65к ограничение. или ты не о нем?


 
homm ©   (2008-01-12 22:14) [45]

> [44] sniknik ©   (12.01.08 22:09)
> стандартный берет больше, и уже давно. это раньше, в 98м,
> у нотепада было 65к ограничение. или ты не о нем?

Именно это ограничение не дает им даже сейчас показывать поля больше. Либо так как есть, либо аксес будет работать по разному на разных ос, либо они отказываются от поддержки старых ос. Они выбрали так, как сейчас, сообщеть о якобы нехватки памяти под любой ос.


 
buka   (2008-01-12 22:30) [46]

Ну ды-к что ребята?
Убедились?
Что посоветуете?


 
homm ©   (2008-01-12 22:32) [47]

> [46] buka   (12.01.08 22:30)
> Убедились?

нет.

> Что посоветуете?

Прочесть написаное.


 
sniknik ©   (2008-01-12 22:35) [48]

> Ну ды-к что ребята?
> Убедились?
в том что мы правы? да.

> Что посоветуете?
следовать совету данному изначально.

ты както вообще выборочно читаешь... или скрываешь информацию, говорил в дельфи надо просмотр сделать а останавливает почемуто то, что аксесс его не хочет показывать (причем не по обьективной причине, а "из принципа")


 
buka   (2008-01-12 23:10) [49]

Значит я что-то не дотумкиваю.
И каким советам следвать? Пойти на страницу к идиотам?
Не Akccess не хочет показывать, а средства визуализации Delphi.
Если работать чисто с Akccess то не проблем: щелкнул два раза по ячейке и готово.
А я хотел бы как, например в DB RichEdit проходишь записи навигатором или через Locate и они сразу выскакивают в соответствующих окнах.
С коротким текстом именно так и получается, а вот длинный - выплевывает уже из акссеssa (too long) кроме blob, а этот не хочет высвечиваться в Гридах, Ричах и пр.
Неужели так трудно понять?
Или Вы для хранения книг пользуете какой-то иной способ?


 
homm ©   (2008-01-12 23:18) [50]

> [49] buka   (12.01.08 23:10)
> Пойти на страницу к идиотам?

Да.

Используй поле типа MEMO.


 
homm ©   (2008-01-12 23:19) [51]

> [49] buka   (12.01.08 23:10)
> Неужели так трудно понять?

Неужели так трудно научится читать и шевелить мозгами?


 
sniknik ©   (2008-01-12 23:24) [52]

> И каким советам следвать?
хранить текст в текстовом поле, и соответственно тогда использовать DBRichEdit и еже с ними, а не пихать в компоненты для текста OLE обьекты...
а уж если впихнул в поле такой базы обьект, то забудь по компоненты для текста, а изучай технологию OLE (начни с контейнера например). хотя, вот это, мне честно говоря совсем не нравится (не нужно это тебе, по тому что описано. имхо конечно)... сосредоточься на первом.


 
Anatoly Podgoretsky ©   (2008-01-12 23:26) [53]

> buka  (12.01.2008 23:10:49)  [49]

Ну так и ты делай тоже самое по двойному щелчку.


 
sniknik ©   (2008-01-12 23:27) [54]

> Используй поле типа MEMO.
у jet это Text.


 
homm ©   (2008-01-12 23:32) [55]

> [54] sniknik ©   (12.01.08 23:27)
> у jet это Text.

Может быть. В самом аксесе это называется «Поле МЕМО».


 
buka   (2008-01-12 23:45) [56]

> Используй поле типа MEMO.
у jet это Text.

Поле МЕМО не принимает большой текст. Я уже пробовал.
Может отойти от Акссесса?
Какую посоветуете?


 
buka   (2008-01-12 23:48) [57]

Вы в каких базах храните большие текстовые файлы?


 
buka   (2008-01-12 23:50) [58]

И еще попробовал OleContainer.
Нормально, хранит и видит.
Но кто-то упоминал DBOleContainer.
А где его можно найти?


 
sniknik ©   (2008-01-13 00:23) [59]

> Поле МЕМО не принимает большой текст. Я уже пробовал.
а мои 5 мегабайт значит маленький?

> Какую посоветуете?
промышленного маштаба... а то текст не влезет.

> Вы в каких базах храните большие текстовые файлы?
пофигу нам. с какими работаем в тех и храним, то что приходится (на текстовых файлах не зацикливаемся).

> И еще попробовал OleContainer.
> Нормально, хранит и видит.
вреш ведь. не пробовал. выкладывай код проверим.


 
buka   (2008-01-13 00:59) [60]

Странно, но на другом компе те же Windows, Access, однако и 100 кб и 300 кб показывает  при использовании в Akccesse MEMO, а вот на 1-м - никак.
Правда на 7 МБ (Гражданский кодекс во всех 4-х частях)- и этот отказался принимать пишет "текст слишком длинный".
А чего мне врать? Коды я не смотрел. Просто взял OleContainer и вложил туда текст и ... вижу его.Вот и вся "загогулина".
Спать хочется.
Давайте оставим на завтра. У нас уже 3 ночи.


 
sniknik ©   (2008-01-13 01:17) [61]

> пишет "текст слишком длинный".
кто пишет? аксесс? см. выше обсуждали уже его отображение текста.

> А чего мне врать?
откуда знать? ессть наверно резон.

> Просто взял OleContainer и вложил туда текст и ...
вот изза этого и сомнения. ты не мог "вложить туда текст", ты мог вставить обьект (обьект автоматизации), из списка (для чисто текста такого нет), а уже в нем открыть текст. или ты мог открыть из файла (обьект сам подставится), но если этот файл текстовый (txt) ты вряд ли бы его видел (разве что установлен какой нестандартный обьект автоматизации), ты видел бы имя файла, ссылку/иконку, но не текст, до тех пор пока обьект не активируется... в неактивном он даже не пролистывается, и толку от твоего длинного текста если видеть будеш только первые 10-20 строк?.
а у тебя все слишком просто получается, "вложил, вижу", особенно для человека не могущего с более простой (имхо) задачей разобраться.


 
Amoeba ©   (2008-01-13 01:30) [62]


> buka   (12.01.08 23:50) [58]
>
> И еще попробовал OleContainer.
> Нормально, хранит и видит.
> Но кто-то упоминал DBOleContainer.
> А где его можно найти?

Если дашь адрес куда выслать, пришлю.


 
homm ©   (2008-01-13 07:41) [63]

> [60] buka   (13.01.08 00:59)
> А чего мне врать?

Ну ты же тупой, чего же тебе не врать то…


 
buka   (2008-01-13 15:06) [64]

Удалено модератором
Примечание: дубль


 
buka   (2008-01-13 15:06) [65]

Amoeba. Мой адрес: dekhanin@mail.ru Если можно -вышлите, я буду эксперементировать с благодарностью вспоминая Вас.
У меня задача: создать таблицу в которой можно хранить текстовые файлы большой величины. Я не программист, а юрист. Сам осваивал потихоньку Delphi. Ну что мог ... сделал, как мог.
Кое-что из поставленных задач получается. А вот эту... когда-то, кстати решил, но потом забыл как, а сейчас не могу вспомнить.
Как же все-таки втолкнуть в поле MEMO до 1 ГБ?

Hommy: "скажи мне кто я и я скажу тебе кто ты". Но вот мне почему-то Вам хамить не хочется. Конечно, наверное мой язык далек от прфессионального обращающегося в среде программистов.
Также, наверное, как и для Вас непонятны, например, такие словечки, как "аболиция", "франшиза" и многое другое из моей сферы деятельности
Вы дурно воспитаны, если позволяете себе хамить человеку обратившемуся к Вам за помощью.
Я прощаю Вас, убогого.


 
homm ©   (2008-01-13 15:22) [66]

> [64] buka   (13.01.08 15:06)
> Конечно, наверное мой язык далек от прфессионального обращающегося
> в среде программистов.

И что? Это мешает вам прочесть то, что здесь написано выше хотя бы один раз, не пропуская текст через строку? Вот чесно, сколько раз ветку перечитывал? А сколько раз перечитывал, пытаясь разобраться? Не вижу не одного вопроса о том, что чтото не понятно из сказаного, но зато много притензий по поводу хамства и отсутствия дельных советов.


 
homm ©   (2008-01-13 15:35) [67]

Читать внимательно наш диалог с sniknik [34]-[45]
Искать, где говорится что куда можно писать и через что. Думать, потом анализировать, потом подумать еще раз и спросить, если что то еще не понятно.


 
sniknik ©   (2008-01-13 17:01) [68]

> Как же все-таки втолкнуть в поле MEMO до 1 ГБ?
1 байт это тоже до гб. ;о)...
близко к этому, 600-1000мег у тебя будут проблемы и с BLOB, гарантирую. (объяснять не хочется. хочеш сам подумай над вопросами. сколько оперативки на твоей машине? и второй, сколько книг будет в "библиотеке"? кстати про ограничение базы я тоже писал, мельком, т.к. это было "околовопросно" но тем не менее)

> как "аболиция", "франшиза" и многое другое из моей сферы деятельности
заметь, в твою сферу деятельности мы и не лезем. (еще бы, если б я начал нашего юриста доставать, как контракт составить/договор проверить/и т.д. он бы меня просто послал, далеко и надолго...)
кстати, что такое "франшиза" я чисто случайно знаю. ;) т.к. близко к этому работаю (есть "франчи" клиенты. у который "вывеска" конкурентами обслуживается а их мы... или наоборот).

> если позволяете себе хамить человеку обратившемуся к Вам за помощью.
я позволяю себе все что угодно в ответ на... а вранье так вообще не перевариваю. и ответ на него могу вообще все.


 
Amoeba ©   (2008-01-13 17:30) [69]


> buka   (13.01.08 15:06) [65]

Выслал.



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

Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.63 MB
Время: 0.042 c
3-1190862009
Arkadiy
2007-09-27 07:00
2008.02.03
строковое поле


2-1200206885
Anion
2008-01-13 09:48
2008.02.03
Проблема запуска Delphi 6


2-1200025259
Washington
2008-01-11 07:20
2008.02.03
ShellExecute не работает


2-1199978375
NaRuTo
2008-01-10 18:19
2008.02.03
Завершение программы!


2-1199798836
Kolan
2008-01-08 16:27
2008.02.03
При компиляции проекта компилируется еще и пакет&#133





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский