Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ДЛя тех кто разбирается в указателях и типе char 
:(
    Опции темы
=Женек=
Дата 14.11.2005, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хочу сохранить в MySQL картинку.
Куда не сунусь мне предлагают функции с использованием dbExpress и прочей хрени. ОДнако как подключиться к базе MySQL с их помощью - ну никто не знает.

Ладно, вот есть функция загрузки изображения из файла из книги Поля Дюбуа
Код




load__image (MYSQL *conn, int id, FILE *f)
{
char       query[1024*100], buf [1024*10], *p;
unsigned long from_len;
int        status;

sprintf (query, "INSERT INTO picture (pict_id,pict_data) VALUES (%d,'", id);
p = query + strlen (query);
while ((from_len = fread (buf, 1, sizeof (buf), f)) > 0)
{

if (p + (2*from_len) + 3 > query + sizeof (query))
{
print_error (NULL, "изображение слишком велико"); return (1);
}
p += mysql real escape string (p, buf, from__len) ;
}
*p + + '\'';
*P++  ')';
status = mysql_real_query (conn, query, (unsigned long) (p - query));
return   (status) ;
}




Ну хоть кто-нить знает, как из нее сделать функцию для загрузки из переменной TStream?

Только не надо мне говорить - возьми то, сделай примерно вот это, принцип я знаю, вот что я сделал:

Код

char *buffer =new char(Stream->Size);
char *query = new char;
char* p;
unsigned long from_len;
Stream->Write(buffer, Stream->Size);


             sprintf(query,"INSERT INTO films (title) VALUES ('");
             p=query+strlen(query);
            p+= mysql_real_escape_string(mysql,p,buffer,0);

             *p+='\'';
             *p+=')';


  int ret = mysql_real_query(mysql, p, (unsigned long) (p-query));
                if(ret)
                  {
                   ShowMysqlError(mysql);
                   return;
                  }




Только это не работает. Access Violation ловит.
ПОмогите, если нетрудно с работающим кодом.
PM MAIL   Вверх
sergejzr
Дата 14.11.2005, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Модератор: Название темы должно отражать ее суть!
Замечено неоднократно игнорирование этого правила форума.
В следующий раз последует немедленное удаление темы и строгое предупреждение!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
=Женек=
Дата 14.11.2005, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А оно и так отражает. Я свел задачу к вопросу об указателях. Если бы я озаглавил тему "запись картинок", меня бы наказали за дублирование тем.
Разве я нанес вред?
PM MAIL   Вверх
sergejzr
Дата 14.11.2005, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



На этом форуме существуют правила и несоблюдение их несомненно наносит вред.
Дублировать темы запрещено так же, как и бессмысленно их озаглавливать их.
Здесь никаких компромиссов нет и быть не может.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
=Женек=
Дата 14.11.2005, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ладно, спорить не буду. Лучше помоги по сабжу.
PM MAIL   Вверх
Vyacheslav
Дата 15.11.2005, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Я бы и рад помочь, но что либбо разобрать в товем примере невозможно.
Во-первых
Для начала могу скачать, что непосредвтвенно TStream ты использовать не можешь, ибо это абстрактный класс. И что тогда такое в твоем примере Stream - одному богу известно
Код

TMemoryStream* stream = new TMemoryStream();
stream->LoadFromFile( filename);
//указатель, где хранится изображение
char* buf = (char*)stream->Memory;

Что такое mysql_real_query и что туда надо подставлять, это ужи извини телепатов нет

Во-вторых,я тоже посоветую dbExpress. Какие уж там проблемы, я не знаю. Все элементарно просто


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
=Женек=
Дата 15.11.2005, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Какие проблемы? Объясню - dbExpress очень напоминает MySQL DAC - даже операторы и свойства практически одинаковые. В прошлом я уже пытался испльзовать C API и DAC в одном проекте - они конфликтовали. Из-за схожести dbExpress и DAC я подумал что первый тоже будет конфликтовать с API.

И все-таки я попробовал - не конфликтует, картинка пишется - спасибо!
PM MAIL   Вверх
WhiteSpirit
Дата 15.11.2005, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мдя а подскажите как а то у меня он libmysql.dll найти не может?
--------------------
To beer or no to beer
PM MAIL   Вверх
Guest
Дата 15.11.2005, 23:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А он у тебя добавлен в проект?

Если нет, то Project->AddToProject
  Вверх
WhiteSpirit
Дата 16.11.2005, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всё равно не помогает
--------------------
To beer or no to beer
PM MAIL   Вверх
_hunter
Дата 16.11.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



что не помогает?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
WhiteSpirit
Дата 16.11.2005, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Project->AddToProject не помогает, всё равно не видит dll'ку
Добавлено @ 11:49
Кстати наверное нехорошо задавать вопросы в чужом топике.

Создаю отдельный
--------------------
To beer or no to beer
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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