Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Помогите мне, глупой, найти ошибку в SQL-коде на insert!!!

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
Demidova Aigul



Зарегистрирован: 29.03.2005
Сообщения: 7
Откуда: Казахстан, г. Алматы

СообщениеДобавлено: Вт Апр 05 2005 12:31    Заголовок сообщения: Помогите мне, глупой, найти ошибку в SQL-коде на insert!!! Ответить с цитатой

Shocked Крутые Делфисты!!! Я новичок в Delphi! Помогите мне, глупой, найти ошибку в SQL-коде! Почему-то у меня вместо картинки в таблице в базе пустота добавляется. И в строке ParamByName('0').Assign(Form1.image_mapp.Picture) тоже пустота, когда в отладчике курсор поставить на Form1.image_mapp.Picture. В чем ошибка? Подскажите, пожалуйста!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Код был такой (с помощью этого кода хотела выбрать картинку из OpenPictureDialog1.FileName, а потом добавить эту картинку в таблицу "map_path" в поле "path"):

with modif_path do
if OpenPictureDialog1.Execute then begin
Form1.image_mapp.Picture.LoadFromFile(OpenPictureDialog1.FileName);

Close;
SQL.Clear;
SQL.Add('insert into map_path (path,InventoryID) values (:0, :1)');
ParamByName('0').Assign(Form1.image_mapp.Picture);
ParamByName('1').AsInteger := dm.Query1InventoryID.AsInteger;
Prepare;
ExecSQL;
Query1.Close;
Query1.Open;
end;

Пожалуйста, помогите мне!!!!!!!!!!!!!!!!
_________________
новичок
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Wladimir



Зарегистрирован: 02.03.2005
Сообщения: 150
Откуда: Ставропольский край

СообщениеДобавлено: Ср Апр 06 2005 10:29    Заголовок сообщения: Ответить с цитатой

Попробуй:

blob : TMemoryStream;
...

blob = TMemoryStream.Create;
... . Picture.Bitmap.SaveToStream(blob);
blob.Seek(soFromBeginning, 0);
... . ParamByName(где картинка).LoadFromStream(blob);
blob.Free;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Demidova Aigul



Зарегистрирован: 29.03.2005
Сообщения: 7
Откуда: Казахстан, г. Алматы

СообщениеДобавлено: Ср Апр 06 2005 11:19    Заголовок сообщения: thank for Wladimir Ответить с цитатой

Спасибо за подсказку!
Моим способом у меня сегодня тоже получилось исправить код. Теперь работает. Вот так получилось:

[code]
with modif_path do

if OpenPictureDialog1.Execute then begin
Form1.image_mapp.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Close;
SQL.Clear;
SQL.Add('insert into map_path (path,InventoryID) values (:0, :1)');
ParamByName('0').LoadFromFile(OpenPictureDialog1.FileName,ftGraphic);
ParamByName('1').AsInteger := dm.Query1InventoryID.AsInteger;
Prepare;
ExecSQL;
Query1.Close;
Query1.Open;
end;



А с потоками, если честно, у меня нет опыта работы. А хотелось бы испробовать и этот способ. Не знаю, так что-ли нужно написать (только за стул покрепче советую держаться, чтоб от смеха не упасть):

[code]
var blob : TMemoryStream;
......


with modif_path do
if OpenPictureDialog1.Execute then begin
Form1.image_mapp.Picture.LoadFromFile(OpenPictureDialog1.FileName);
blob = TMemoryStream.Create;
Form1.image_mapp.Picture.Bitmap.SaveToStream(blob);
blob.Seek(soFromBeginning, 0);

Close;
SQL.Clear;
SQL.Add('insert into map_path (path,InventoryID) values (:0, :1)');
ParamByName('0').LoadFromStream(blob);
ParamByName('1').AsInteger := dm.Query1InventoryID.AsInteger;
Prepare;
ExecSQL;
blob.Free;
Query1.Close;
Query1.Open;
end;
_________________
новичок
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Wladimir



Зарегистрирован: 02.03.2005
Сообщения: 150
Откуда: Ставропольский край

СообщениеДобавлено: Ср Апр 06 2005 14:26    Заголовок сообщения: Ответить с цитатой

Ну да, вроде так мы когда-то и делали.
LoadFromFile - фактически тот же LoadFromStream, просто поток при этом создаётся уничтожается автоматически внутри метода работы с файлом.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Demidova Aigul



Зарегистрирован: 29.03.2005
Сообщения: 7
Откуда: Казахстан, г. Алматы

СообщениеДобавлено: Чт Апр 07 2005 09:19    Заголовок сообщения: Ответить с цитатой

OK! Спасибо! Сейчас нет времени, но чуть позже испробую этот способ с потоками (может, какие-нибудь ошибки вылезут).
_________________
новичок
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...