Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2014, 22:51   #1
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
Печаль Проблема с вставкой картинок в БД

Здравствуйте! Пишу курсовой по дисциплине ТРПО(технология разработки ПО). Возникла следующая ошибка:
[Error] Unit11.pas(68): Undeclared identifier: 'TBlobField'

У меня 2 формы. На первой - БД(компоненты: DataSource, ADOQuery, ADOCOnnection и DBGrid). Ошибка при добавлении картинки в БД. Моя база создана в Access, в ней есть поле "Картинка" (тип данных: Поле объекта OLE). На второй форме - компонент OpenPictureDialog(я хотел бы сделать так, чтобы картинка записывалась в БД и отображалась в компоненте DBImage) и кнопка "Загрузить фото", вот с таким кодом:

(Uses JPEG)

procedure TForm11.BitBtn3Click(Sender: TObject);
begin
if not OpenPictureDialog1.Execute then exit;
Form10.ADOQuery1.Edit;
TBlobField(Form10.ADOQuery1.FieldBy Name('Картинка')).LoadFro mFile(OpenPictureDialog1.FileName);
Form10.ADOQuery1.Post;
end;

Программа запускается, но потом ошибка:
[Error] Unit11.pas(68): Undeclared identifier: 'TBlobField'
Вылазит когда я пытаюсь вставить картинку через OpenPictureDialog.

Пожалуйста помогите Везде всё облазил, но решения так и не нашел........

P.S. Я подозреваю, что проблема в том, что моя кнопка "Загрузить фото" и OpenPictureDialog находятся на разных формах, так как, когда я в черновой копии ставил и БД и кнопку и OpenPictureDialog на ОДНУ И ТУ ЖЕ форму - всё работало без ошибок.
kion3 вне форума Ответить с цитированием
Старый 07.03.2014, 23:40   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Программа не запускается - это ошибка компиляции.
В uses DB попробуй вставить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.03.2014, 23:51   #3
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Программа не запускается - это ошибка компиляции.
В uses DB попробуй вставить
Она не то что не запускается. Она включается. Всё вроде хорошо, но когда я нажимаю на свою "Загрузить фото", выбираю в OpenPictureDialog картинку, вылетает ошибка:
'ADOQuery1: DataSet not in edit or insert mod'

И ещё.... Смешно конечно =) Но потом я перезапускаю Delphi и запускаю свою программу заново, то вижу что сама картинка в Бд сохранилась. =)
Не понятно почему она вообще вылетает.
kion3 вне форума Ответить с цитированием
Старый 08.03.2014, 00:37   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ничего не понял. То одна, то другая ошибка. Повнятнее можно мысли излагать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.03.2014, 01:20   #5
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ничего не понял. То одна, то другая ошибка. Повнятнее можно мысли излагать?
Попытаюсь. У меня 2 формы. На первой - База данных (DBGrid, DataSource, ADOQuery и т.д.). На второй - у меня кнопка "Загрузить фото".
Запускаю программу. Всё как положено. Нажимаю на эту кнопку, открываю картинку(через OpenPictureDialog). Нажимаю "ОК"(чтобы сохранилось в базе данных), и тут выскакивает ошибка:
'ADOQuery1: Dataset not in edit or insert mode'
Что делать?

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ничего не понял. То одна, то другая ошибка. Повнятнее можно мысли излагать?
ААА!! Я понял. Я сделал всё как вы сказали - поставил в uses DB. И теперь у меня новая ошибка(т.е. с этим TBlobField уже всё нормально). Ради бога простите Вы решили мне проблему с этой ошибкой, что я аж не заметил(из-за новой). Поэтому вы и не поняли.....мой косяк, прошу прощения.
Теперь не знаю что делать с новой ошибкой

Последний раз редактировалось Stilet; 08.03.2014 в 14:03.
kion3 вне форума Ответить с цитированием
Старый 08.03.2014, 07:26   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

в новой надо датасет выставить в едит моде, о чем вам и говорит ошибка
eval вне форума Ответить с цитированием
Старый 08.03.2014, 15:05   #7
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
в новой надо датасет выставить в едит моде, о чем вам и говорит ошибка
Не могли бы вы для тупых поподробнее объяснить. Как это выставить?
kion3 вне форума Ответить с цитированием
Старый 08.03.2014, 15:28   #8
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
По умолчанию

Всё тема закрыта! Благодарю за помощь, всё получилось. Надо было вместо: "Form10.ADOQuery1.Post;" вставить "Form10.ADOQuery1.Edit;".
Всем спасибо!
kion3 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с вставкой скопированного текста из Clipboard noname_06 Общие вопросы Delphi 0 02.05.2013 22:49
c++ если делать дизайн в проге, то обязательно это делать вставкой картинок? goluzov Общие вопросы C/C++ 0 21.10.2012 06:17
проблема со вставкой в CИ megawolf Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 29.12.2011 23:26
Компонент UpDown. Проблема со вставкой картинок. z-wer Компоненты Delphi 6 19.04.2010 21:14
Проблема со вставкой кода на форум fs444 О форуме и сайтах клуба 2 13.11.2009 08:56