Поиск:

Ответ в темуСоздание новой темы Создание опроса
> хранение файлов в PostgreSQL 
:(
    Опции темы
SergeBS
Дата 28.8.2007, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Denis
Цитата
blob := dm.dsDocFiles1.CreateBlobStream(dm.dsDocFiles1.FieldByName('file'), bmWrite);

У тебя.
Цитата
blob1 := dsDocFiles1.CreateBlobStream(dsDocFiles1.FieldByName('doc_value'),
      bmRead);

У меня. Разницу не видишь?
PM MAIL   Вверх
Denis
Дата 28.8.2007, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Я там уже и bmRead, и bmWrite, и bmReadWrite там пробовал ставить. Всегда одна и та же Ошибка:"Invalid class typecast"

PM MAIL   Вверх
SergeBS
Дата 28.8.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Denis
А остальные строчки кто смотреть будет? Смешал коды записи в блоб-поле и чтения из блоба в четр-те что. ВНИМАТЕЛЬНО смотри на код чтения из блоба. И смотри в какой строке.
PM MAIL   Вверх
Denis
Дата 28.8.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



SergeBS, до остальных строчек программа не доходит smile
на самой первой строке
blob := dm.dsDocFiles1.CreateBlobStream(dm.dsDocFiles1.FieldByName('file'), bmRead);
выдает ошибку :(
Может с таблицей что не так?
Код

CREATE TABLE "temp"
(
  file bytea

WITHOUT OIDS; 
ALTER TABLE "temp" OWNER TO postgres;


Добавлено через 1 минуту
SergeBS, до остальных строчек программа не доходит smile
на самой первой строке
blob := dm.dsDocFiles1.CreateBlobStream(dm.dsDocFiles1.FieldByName('file'), bmRead);
выдает ошибку :(
Может с таблицей что не так?
Код

CREATE TABLE "temp"
(
  file bytea

WITHOUT OIDS; 
ALTER TABLE "temp" OWNER TO postgres;


Добавлено через 9 минут и 44 секунды
SergeBS, до остальных строчек программа не доходит smile
на самой первой строке
blob := dm.dsDocFiles1.CreateBlobStream(dm.dsDocFiles1.FieldByName('file'), bmRead);
выдает ошибку :(
Может с таблицей что не так?
Код

CREATE TABLE "temp"
(
  file bytea

WITHOUT OIDS; 
ALTER TABLE "temp" OWNER TO postgres;


PM MAIL   Вверх
SergeBS
Дата 29.8.2007, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Denis
А теперь переименуй название поля file в file1 хотя бы - использовать ключевые слова как названия полей - иметь лишние грабли. У делфи вполне может от этого башню снести.
Кроме создания таблицы нужно бы ее и заполнить.
PM MAIL   Вверх
Denis
Дата 29.8.2007, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



SergeBS, с названием поля све нормально, пробовал и другие. А таблицу надо из Delphi заполнить. Или ее до использования надо заполнить чем то? Если да, то как в постгре заполнить поле типа bytea?
PM MAIL   Вверх
SergeBS
Дата 29.8.2007, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Denis
Ну так заполняй таблицу как описано в DRKB. Единственное - объявления типов в var - тоже нужно подобрать. Заполни таблицу, и имя все-таки поставь не конфликтующее с зарезервированными словами.
PM MAIL   Вверх
Denis
Дата 29.8.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Но как можно заполнить базу, если при создании потока возникает ошибка? Переменная типа TBlobStream не подходит. Ведь если у тебя пример работает, а у меня такой же код нет, то я что-то делаю не так, но вот никак не могу найти ЧТО?
PM MAIL   Вверх
SergeBS
Дата 30.8.2007, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Denis,
Еще раз:
Цитата
Ну так заполняй таблицу как описано в DRKB. Единственное - объявления типов в var - тоже нужно подобрать.

Читать умеешь?
Код

procedure TMain.SaveFileToBlob;
var
  blob1 : TStream;
  fs : TFileStream;
...


PM MAIL   Вверх
Denis
Дата 30.8.2007, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Цитата

Ну а почему у меня не работает? Подскажите, плиз, где в этом коде ошибка?код Pascal/Delphi
Код

{dm - datamodule, dsDocFiles1 - TADODataSet -> таблица MS SQL
CommandText = 'select * from temp'
там единственное поле file - типа bytea в postgreSQL}
var
  blob : TStream;
  fs : TFileStream;
begin
....


Я ж так и писал! Но это не работает! Я уже не знаю какие типы еще пробовать!
PM MAIL   Вверх
SergeBS
Дата 30.8.2007, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Denis,
Проверяй, есть ли вообще таблица, сколько в ней записей и т.п. 
Цитата

Я ж так и писал! Но это не работает! Я уже не знаю какие типы еще пробовать! 
 
Значит по неопытности грабли себе построил еще где-то. Например на Делфи обновления не ставил. Версия Делфи? Версия ADO?
PM MAIL   Вверх
Denis
Дата 30.8.2007, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



SergeBS
Delphi7, таблица не содержит ни одной записи, т.к. заполнить не могу smile Надеюсь что получится когда-нить. А потом еще столь ко же с чтением буду мчаться smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0888 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.